简体   繁体   English

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

[英]__doPostBack() is causing post pack but not calling button click event in aspx page

I am using a aspx page which is having a button. 我正在使用一个带有按钮的aspx页面。

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

There are two ways to cause post pack as shown in the below code. 有两种方法可以导致邮件包,如下面的代码所示。

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

    });

When I use __doPostBack, It calls page load event but not btn click event. 当我使用__doPostBack时,它调用页面加载事件但不调用btn click事件。

Is there any way using __doPostBack to trigger Page Load as well as savebtn_Click event. 有没有办法使用__doPostBack来触发Page Load以及savebtn_Click事件。

If I use id.click(); 如果我使用id.click(); as shown above, I am able to call savebtn_Click but it does not tells me which control caused the post back. 如上所示,我可以调用savebtn_Click,但它没有告诉我哪个控件导致回发。

have you tried using the UniqueID instead of the ClientID ? 您是否尝试过使用UniqueID而不是ClientID

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

Also have a look at this quick tutorial on dopostback: 另请参阅有关dopostback的快速教程

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM