8

我正在使用一个带有按钮的 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();

    });

当我使用 __doPostBack 时,它调用页面加载事件而不是 btn 点击事件。

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

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

4

2 回答 2

22

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

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

还可以看看这个关于 dopostback的快速教程:

于 2013-08-23T05:07:13.700 回答
2

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

  document.all('Button1').click();
于 2017-01-03T10:39:06.583 回答