2011-06-24 46 views
0

我怎麼會引發一個事件,如果我的HTML語法如下: 消耗C#事件NO ASP CONTROLS

protected void inputCheck(object sender, EventArgs e) 
     { 
      //doesnt matter because it raised an on click. 
     } 

例外:

<select runat="server" id="selection" onclick="inputCheck" /> 

我在後面的代碼試過這種微軟JScript運行時錯誤:'inputCheck'未定義

回答

1

下面是一個jQuery使用ajax方法回發到服務器的例子,非常乾淨和易於使用。如果您有任何問題,請告訴我。

--html頁

<select id="selection" name="selection" /> 

--Place在由腳本標籤包圍的HTML head標籤這個下面的代碼;你還必須包括最新的jQuery代碼(從http://www.jquery.com免費下載)

$(document).ready(function() 
{ 
    $("#selection").click(function() 
    { 
     var selectionValue = $(this).val(); 
     $.ajax({ 
      type: "POST", 
      url: "CodeBehindPage.aspx/WebMethodName", 
      data: "{'input':'" + selectionValue + "'}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 
       //return value goes here if any 
      } 
     }); 
    } 
}); 

//後面的代碼頁

[System.Web.Services.WebMethod] 
public static bool WebMethodName(string input) 
{ 
    try 
    { 
     //do something here with the input 

     return (true); 
    } 
    catch(Exception ex) 
    { 
     throw ex; 
    } 

} 

- 這將發佈的代碼到服務器,而無需任何回發,這是我喜歡。爲了測試,在WebMethodName函數內部設置一個斷點並查看傳入的輸入。HTH

0

您的第一個片段中的onclick只能在JavaScript中運行。要提升事件服務器端,第一步是爲此事件構建一個JavaScript方法。從那裏,你有幾種選擇:

  • 您可以構建一個Ajax請求調用WebMethod
  • 您可以發佈事件回到原來的頁面。由於您沒有使用asp控件,因此您必須在您的page_load中有代碼來檢查發佈的事件數據並自行提出。
+0

我需要一個示例。 – hidden