似乎当多个 UpdatePanel 位于单个页面上时,每当其中一个发生 asyncPostBack 时,所有其他页面都会重新加载其 html。有办法解决这个问题吗?
示例
示例.aspx
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div style="border: 1px solid black;">
<asp:TextBox runat="server" ID="txtTEST1" />
<asp:Label runat="server" ID="lblTEST1" />
<asp:Button runat="server" ID="btnTEST1" Text="AsyncPostBack1" />
<div onclick="this.innerHTML='Wooo!'">Click Me - UpdatePanel1</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div onclick="this.innerHTML='Wooo!'" style="padding: 1em;">Click Me. I'm not part of an Update Panel</div>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<div style="border: 1px solid black;">
<asp:TextBox runat="server" ID="TextBox1" />
<asp:Label runat="server" ID="Label1" />
<asp:Button runat="server" ID="Button1" Text="AsyncPostBack2" />
<div onclick="this.innerHTML='Wooo!'">Click Me - UpdatePanel2</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
示例.aspx.vb
Protected Sub btnTEST1_Click(sender As Object, e As EventArgs) Handles btnTEST1.Click
lblTEST1.Text = "Refreshed at " & DateTime.Now.ToString()
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = "Refreshed at " & DateTime.Now.ToString()
End Sub
测试问题
- 单击所有 3 个带有“Click Me”文本的 div,以便在 UpdatePanel 内部和外部更改 HTML。
- 单击标有“AsyncPostBack”的按钮之一。无论单击哪一个,两个 UpdatePanel 都将重新呈现并替换其 HTML,如 UpdatePanel 内的 2 个 div 重置为其原始文本所示。
所以我问,是否可以在同一页面上有多个 UpdatePanel,并且每次其中一个发生 asyncPostBack 事件时都不会导致彼此重新渲染。
最佳答案
是的
- 设置 updatemode=条件
- 提供将触发更新的触发器。这是示例的链接。 (谷歌搜索结果排名第 1)http://ajax.net-tutorials.com/controls/updatepanel-control/
关于asp.net - 在单个页面上使用多个 UpdatePanel 且不会互相干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741597/