2016-11-30 18 views
1

Button點擊事件我已經使用了一個ajax方法,該方法調用了寫在服務器端的webmethod。使用ajax調用C#事件不起作用

我想在每次點擊按鈕時調用該方法。但是用我目前的代碼,它沒有打到服務器端寫的[WebMethod]

下面是兩個密碼

Ajax代碼

$(document).ready(function() { 
     $('#btnAttachParty').click(function() {     
      $.ajax({ 
       url: 'FrmAgreementMaster.aspx/btnAttachParty_Click?id=' + $(this).attr('id') 
      }); 
     }); 
    }); 

服務器端代碼

[WebMethod] 
public void btnAttachParty_Click(int id) 
{ 
    if (strMode == "A") 
    { 
     if (HidAttachVal.Value == "") 
     { 
      ObjPriCon.Open(); 
      OracleCommand objpricmd = new OracleCommand("select xxcus.xxacl_pn_party_info_SEQ.nextval from dual", ObjPriCon); 
      HidAttachVal.Value = Convert.ToString(objpricmd.ExecuteOracleScalar()); 
      ObjPriCon.Close(); 
     } 
     ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "AttachmentCallParty(" + HidAttachVal.Value + ");", true); 
    } 
    else 
    { 
     if (HidAttachVal.Value == "") 
     { 
      ObjPriCon.Open(); 
      OracleCommand ObjPriCmd = new OracleCommand("select xxcus.xxacl_pn_party_info_SEQ.nextval from dual", ObjPriCon); 
      HidAttachVal.Value = Convert.ToString(ObjPriCmd.ExecuteOracleScalar()); 
      ObjPriCon.Close(); 
     } 
     ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "AttachmentCallParty(" + HidAttachVal.Value + ");", true); 
    } 
} 

請讓我知道它爲什麼不打Web方法的一部分。

回答

0

Your WebMethod in ASPX must be static

[WebMethod] 
public static void btnAttachParty_Click(int id) 
{ 

} 
+0

如果我添加'靜態'單詞,我的變量開始給出錯誤 – BNN

+0

@nad這樣調試你的錯誤,看看它是什麼。另外我建議你在ajax的data屬性中傳遞函數的參數! – mybirthname

+0

for'strMode'它給出的錯誤爲**非靜態字段,方法或屬性需要對象引用** – BNN

0

我認爲問題是在這裏,

$(this).attr('id') // btnAttachParty 

這會返回按鈕的ID。

嘗試value屬性而不是id

+0

也嘗試過,但它仍然不起作用 – BNN