我的asp.net网页上有一个updatepanel。我想触发javascript函数内的updatepanel,触发一个按钮。
为此,我使用了__doPostBack('myUpdatePanel', '');
函数。但我认为这会导致整页回发。我调用此函数时也会执行我的document.ready函数。我可能会错过一些观点。
有没有其他方法可以在javascript函数中触发updatepanel?
答案 0 :(得分:20)
我认为如果您在更新面板中放置一个隐藏按钮,并且可以使用javascript触发此按钮的单击,它将执行您想要的操作。
<script type="text/javascript">
function Update_UpdatePaanel() {
document.getElementById('<%= YourButton.ClientID %>').click()
}
</script>
按钮必须位于隐藏的div内,并且不要设置visibile =“false”,因为如果将其设置为false,则控件将不会呈现,并且javascript将产生错误。
<div style="display:none">
<asp:Button ID="YourButton" runat="server" />
</div>
答案 1 :(得分:3)
只需创建一个javascript函数并执行生成的回发事件:
<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>
以上语句放在您的aspx页面上,它引用从服务器生成的完全相同的代码,以便为您的面板进行回发。您可以将它放在客户端的函数中来使用它:
function fncUpdatePanel () {
<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>;
}
然后,您可以将该功能附加到页面上的任何事件(甚至是鼠标悬停事件)。此示例使用服务器端附加事件:
myUpdatePanel.attributes('onmouseover', 'fncUpdatePanel()')