2016-11-30 67 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