2013-08-23 17 views
3

我正在使用一个有按钮的aspx页面。__doPostBack()导致后包,但不调用aspx页中的按钮单击事件

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

有两种方法可以导致post pack,如下面的代码所示。

$(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来触发Page Load以及savebtn_Click事件。

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

+0

为什么你想用客户方做回发? –

回答

13

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

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

也可以看看这个quick tutorial上dopostback:

+1

太棒了。这工作!不知道UniqueID和ClientID有什么区别 – SharpCoder

1

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

document.all('Button1').click(); 
相关问题