2

似乎当多个 UpdatePanels 在一个页面上时,只要一个 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

测试问题

  1. 单击带有“Click Me”文本的所有 3 个 div,以便在 UpdatePanel 内部和外部更改 HTML。
  2. 单击标有“AsyncPostBack”的按钮之一。无论单击哪一个,两个 UpdatePanel 都将重新呈现和替换其 HTML,正如 UpdatePanel 中的 2 个 div 重置为原始文本所看到的那样。

所以我问,是否有可能在同一页面上有多个 UpdatePanel,它们不会在其中一个发生 asyncPostBack 事件时相互重新呈现。

4

2 回答 2

2

是的

  1. 设置更新模式=条件
  2. 提供将触发更新的触发器。这是一个示例的链接。(谷歌上的#1 结果)http://ajax.net-tutorials.com/controls/updatepanel-control/
于 2012-05-24T16:36:01.847 回答
1

尝试添加模式以更新面板标签。如果模式未给出默认模式,则始终为默认模式。如果 UpdateMode 属性为 Always,则 UpdatePanel 控件的内容会在每次来自页面上任何位置的回发时更新。有关 UpdateMode 的 Microsoft 文档

<asp:UpdatePanel ID="BugsListUpdatePanel" runat="server" UpdateMode="Conditional">
于 2012-05-24T16:40:01.867 回答