Javascript __doPostBack()正在导致回发,但未调用aspx页面中的按钮单击事件

Javascript __doPostBack()正在导致回发,但未调用aspx页面中的按钮单击事件,javascript,c#,jquery,asp.net,asp.net-mvc,Javascript,C#,Jquery,Asp.net,Asp.net Mvc,我正在使用一个有按钮的aspx页面 <asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Style="display: none" /> 有两种方法可以导致回发,如下代码所示 $(document).ready(function () { var id = document.getElementById('<%= savebtn.ClientID %>');

我正在使用一个有按钮的aspx页面

 <asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Style="display: none" />

有两种方法可以导致回发,如下代码所示

 $(document).ready(function () {
               var id = document.getElementById('<%= savebtn.ClientID %>');
       //Cause post back & calls page load but not savebtn_Click event
            __doPostBack('<%= savebtn.ClientID  %>', 'OnClick');

    });

    $(document).ready(function () {
                     var id = document.getElementById('<%= savebtn.ClientID %>');
           //Cuase postback & calls both PageLoad and savebtn_Click events.
           //If I use method, There is no way to know which control caused postback
            id.click();

    });
$(文档).ready(函数(){
var id=document.getElementById(“”);
//导致回发&调用页面加载但不保存单击事件
__doPostBack(“'OnClick');
});
$(文档).ready(函数(){
var id=document.getElementById(“”);
//Cuase postback&调用PageLoad和savebtn_Click事件。
//若我使用这个方法,就无法知道哪个控件导致了回发
id.单击();
});
当我使用uu doPostBack时,它调用页面加载事件,但不调用btn click事件

是否有任何方法可以使用doPostBack触发页面加载以及savebtn\u点击事件。


如果我使用id.click();如上所示,我可以调用savebtn_Click,但它不会告诉我是哪个控件导致了回发。

您是否尝试过使用UniqueID而不是ClientID

__doPostBack('<%= savebtn.UniqueID %>', "");
\uuu doPostBack(“”,”);

还可以在dopostback上查看此问题:

我使用以下代码解决了此问题:

  document.all('Button1').click();

为什么要尝试使用clientside进行回发?这很有效,但如果有人能解释它的工作原理,那就太好了。UniqueID从name属性返回值(使用$作为分隔符),ClientID从id属性返回值(使用u作为分隔符)。解释其工作原理:“UniqueID在回发中也起着主要作用。支持回发的服务器控件的UniqueID属性为_EVENTTARGET隐藏字段提供数据。ASP.NET运行时然后使用_EVENTTARGET字段查找触发回发的控件,然后调用其RaisePostBackEvent方法。”