__doPostBack()导致回发,但未在aspx页面中调用按钮单击事件
问题描述:
我正在使用一个带按钮的aspx页面.
I am using a aspx page which is having a button.
<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" Style="display: none" />
有两种导致回发的方法,如下面的代码所示.
There are two ways to cause post back 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();
});
当我使用__doPostBack时,它会调用页面加载事件,但不会调用btn click事件.
When I use __doPostBack, It calls page load event but not btn click event.
是否可以使用__doPostBack触发页面加载以及savebtn_Click事件.
如果我使用id.click();如上所示,我可以调用savebtn_Click,但它不会告诉我哪个控件导致了回发.
If I use id.click(); as shown above, I am able to call savebtn_Click but it does not tells me which control caused the post back.
答
您尝试使用 UniqueID 而不是 ClientID ?
__doPostBack('<%= savebtn.UniqueID %>', "");
还可以在dopostback上查看此快速教程:
Also have a look at this quick tutorial on dopostback: