2010-08-30 59 views
1

我正在學習javacript,而我正要開始做一些不同步的事情。這是我追求的要點:ASP.net Javascript Postback

我有HTML代碼,看起來像這樣:

<a id='nine' onclick="SendToServer('nine');">Nine</a> 

我則想辦法,在Javascript中,發送回一個#九點,單擊服務器。

function SendToServer(id) 
{ 
    //Send that a#nine was clicked back to server 
} 

然後,我想在c#中的某種處理函數來更新數據庫中的條目。

public void GetMessageFromJSHandler(int id) 
{ 
    Item[x][y] = id; 
}   

我不想重新加載頁面,我什麼都不想改變頁面上,我想這樣做的直接的JavaScript,這樣我可以瞭解它是如何工作的。

這是一個偉大的資源:http://msdn.microsoft.com/en-us/library/ms178210.aspx我最終改變了我的需求這個例子。所有的Js和非常簡單。

回答

1

那麼,在你的問題的背景下,你是在正確的軌道上。您可以使用此示例:http://www.devx.com/DevX/Tip/17500以瞭解如何填充SendToServer函數

GetMessageFromJSHandler可能會由IHttpHandler的實施者的ProcessRequest方法調用,至少在最簡單的情況下。

但是這種做事的方式真的是爲了學術目的,學習管道就像它一樣。在生產環境中,使用框架會更好。我的個人選擇是在客戶端和服務器上的ASP.NET MVC上使用jquery,但是如果你喜歡「常規」的ASP.NET(aka webforms),那麼查看MS Ajax庫以查看一些更簡單的doar可擴展的&可維護的時尚。

1

您可以使用WebMethod屬性標記頁面方法,以在客戶端爲它們創建存根。這是一個example。 你可以做的另一件事是使你的頁面方法是靜態的,並使用jQuery的ajax()函數來調用它。 Here is how this way works

1

的jQuery:

function SendToServer(id) 
{ 
    $.ajax({ 
         url: "/GetMessageFromJSHandler", 
         type: "POST", 
         data: { 'id': id } 
      }): 

}

+0

這是更好的例子。 – 2010-08-30 05:15:31

1

功能SendToServer(ID){VAR = PAGEURL 「SamplePage.aspx?回調=真&項目Id =」 +項目 如果(window.XMLHttpRequest) {解釋 var xmlRequest = new XMLHttpRequest(); } else var xmlRequest = new ActiveXObject(「Microsoft.XMLHTTP」); } xmlRequest.open(「POST」,pageUrl,false); xmlRequest.setRequestHeader(「Content-Type」,「application/x-www-form-urlencoded」); xmlRequest。發送(NULL); }

On pageLoad you just check the callback flag and call your function 



if(Request.QueryString["callback"].ToString() == "true") 
    { 
    string id = Request.QueryString["ItemId"].ToString() 
    GetMessageFromJSHandler(int id); 
    }