如何在javascript函数中触发updatepanel

时间:2011-07-28 08:49:00

标签: javascript asp.net updatepanel

我的asp.net网页上有一个updatepanel。我想触发javascript函数内的updatepanel,触发一个按钮。
为此,我使用了__doPostBack('myUpdatePanel', '');函数。但我认为这会导致整页回发。我调用此函数时也会执行我的document.ready函数。我可能会错过一些观点。
有没有其他方法可以在javascript函数中触发updatepanel?

2 个答案:

答案 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()')