複数の UpdatePanels が 1 つのページにある場合、1 つのページで 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>
Example.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
問題のテスト
- HTML が UpdatePanels の内側と外側で変更されるように、「Click Me」テキストを含む 3 つの div すべてをクリックします。
- 「AsyncPostBack」というラベルの付いたボタンの 1 つをクリックします。どちらがクリックされても、UpdatePanels 内の 2 つの div が元のテキストにリセットされることからわかるように、両方の UpdatePanels の HTML が再レンダリングされて置き換えられます。
だから私は、同じページに複数の UpdatePanels を配置して、そのうちの 1 つに asyncPostBack イベントが発生するたびに相互に再レンダリングしないようにすることは可能ですか?