__doPostBack()导致post pack但不调用aspx页面中的按钮单击事件

时间:2013-08-23 04:53:33

标签: 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 %>');
       //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来触发Page Load以及savebtn_Click事件。

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

2 个答案:

答案 0 :(得分:19)

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

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

另请查看有关dopostback的quick tutorial

答案 1 :(得分:2)

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

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