__doPostBack()导致了aspx页面中的postback但未调用按钮单击事件

__doPostBack() is causing post back but not calling button click event in aspx page

本文关键字:postback 调用 事件 单击 按钮 doPostBack aspx      更新时间:2023-09-26

我使用的是一个有按钮的aspx页面。

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

有两种方法可以引起postback,如下面的代码所示。

 $(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();
    });

当我使用__doPostBack时,它调用页面加载事件,但不调用btn-click事件。

有没有办法使用__doPostBack来触发页面加载和savebtn_Click事件

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

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

__doPostBack('<%= savebtn.UniqueID %>', "");

还可以看看这个关于dopostback:

的快速教程

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

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