2010-06-12 3 views
1

내가 asp.net에 코멘트 페이지를 개발하고 있어요,이 내 페이지 :출시 두 가지 작업 ASP.NET

<form action="#"> 
<p><textarea id="textArea" rows="5" cols="30"></textarea></p> 
<input type="submit" value="Submit" /> 
</form> 
<p>Add some comments to the page</p> 

그리고 이것은 내 자바 스크립트 코드 : 그때까지

window.onload = initAll; 

function initAll() { 
document.getElementsByTagName("form")[0].onsubmit = addNode; 
} 

function addNode() { 
var inText = document.getElementById("textArea").value; 
var newText = document.createTextNode(inText); 
var newGraf = document.createElement("p"); 
newGraf.appendChild(newText); 
var docBody = document.getElementsByTagName("body")[0]; 
docBody.appendChild(newGraf); 
return false; 
} 

, 모든 것이 문제가되지 않지만 사용자가 submit 버튼을 클릭하면 버튼이 데이터베이스에 주석을 저장하는 다른 작업을 트리거합니다.

어떻게하면됩니까?

+0

:

는 그런 다음 숨김 코드에서, 당신은 상기 btnSubmit_Click 방법을 추가 할 수 있습니다 (? 당신은 바로 예를 들어, nameOfPage.aspx.cs는 코드 숨김해야합니까) asp .NET 컨트롤 (예 : asp : TextBox 및 asp : Button)을 HTML 컨트롤 대신 사용하면 C#에서 서버의 컨트롤 (JavaScript에서는 클라이언트가 아님)과 상호 작용할 수 있습니다. 이렇게하면 id (예 : this.textArea 및 this.btnSubmit)로 컨트롤을 참조하고 다른 이점을 얻을 수 있습니다. – apollodude217

+0

예를 들어 주시겠습니까? –

답변

3

왜 래퍼가 있고 여전히 하나의 기능을 수행합니까?

addNode에는 두 형식을 모두 기반으로하는 코드가있을 수 있습니까?

addNodeaddComment을 래핑하는 전송 기능을 사용할 수 있습니다.

예 :

function handleSubmit() 
{ 
    addNode(); 
    addComment(); 
    return false; 
} 

편집 :는 서버 코드를 호출하기 원하기 때문에 당신은 몇 가지 옵션이있다. 당신은 아약스를 통해이 모든 것을 할 수 있으며 서버 측 이벤트를 호출하기 위해 addComment 함수를 구현하기 만하면됩니다.

http://www.dexign.net/post/2008/07/16/jQuery-To-Call-ASPNET-Page-Methods-and-Web-Services.aspx

가장 쉬운 방법을하는 ASP.NET 버튼으로 버튼을 변경 한 다음이 비록 서버 측 메소드를 호출 할 버튼 클릭 이벤트를 구현하는 것입니다 : 당신이 그렇게 도움이 필요하면이 문서를 참조하십시오 전체 페이지 새로 고침이 발생합니다.

구현하기가 매우 쉬운 두 가지 하이브리드는 UpdatePanel을 사용하는 것입니다. 버튼을 클릭하면 AJAX 솔루션의 모양과 느낌을 얻을 수 있지만 모든 서버 측 코드를 수행하는 방법을 알아야 만 UpdatePanel이 모든 AJAX 작업을 처리 할 수 ​​있습니다. 이 방법은 원시 아약스 호출을 수행하는 것보다 약간 더 무거웠지만 훨씬 간단하게 수행 할 수 있습니다.

당신은에서 UpdatePanels에 읽을 수 있습니다과 같이, 버튼 : 대신 HTML 입력 태그를 사용하는 http://msdn.microsoft.com/en-us/library/bb399001.aspx

+0

방금 ​​인터넷에서이 코드를 발견했습니다. 그러나이 자바 스크립트 코드는 Label 또는 다른 것과 같은 페이지의 다른 컨트롤에 액세스 할 수 없어 데이터베이스에 연결할 수 없다고 생각합니다. !!! –

+0

고마워, 효과가 있었다. –

1

, ASP를 사용하는이 말한다 무엇

<asp:Button ID="btnSubmit" runat="server" OnClick="btnSubmit_Click" /> 

를 호출하는 버튼을 사용하여 클릭 할 때마다 "btnSubmit_Click"메소드를 실행하고 클라이언트 시스템이 아닌 서버에서이를 실행하십시오. 경우, 일반적인 팁으로

protected void btnSubmit_Click(object sender, System.EventArgs e) { 
    // interact with database here. 
} 
+0

클라이언트 컴퓨터가 아닌 서버에서 실행하십시오! 어떻게? –

+0

클릭 할 때마다 "btnSubmit_Click"메소드를 호출하는 버튼을 사용하십시오! 어떻게? –

+1

* 코드 숨김이 있습니까? * - 그 방법입니다. – egrunin