Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在一个页面上使用多个UpdatePanel而不相互干扰_Asp.net - Fatal编程技术网

Asp.net 在一个页面上使用多个UpdatePanel而不相互干扰

Asp.net 在一个页面上使用多个UpdatePanel而不相互干扰,asp.net,Asp.net,似乎当一个页面上有多个UpdatePanel时,只要一个页面上发生异步回发,所有其他页面都会重新加载它们的html。有办法解决这个问题吗 范例 示例.aspx <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <div style="border: 1px solid black;"> <asp:TextBox run

似乎当一个页面上有多个UpdatePanel时,只要一个页面上发生异步回发,所有其他页面都会重新加载它们的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>
测试问题

  • 用“ClickMe”文本单击所有3个div,以便在UpdatePanel内外更改HTML
  • 单击标有“AsyncPostBack”的按钮之一。无论单击哪一个,这两个UpdatePanel都将重新呈现并替换其HTML,如UpdatePanel中的2个div重置为其原始文本所示
  • 所以我想问,是否有可能在同一页面上有多个UpdatePanel,而这些UpdatePanel不会在每次其中一个发生asyncPostBack事件时导致彼此重新启动。是的

  • 设置updatemode=conditional
  • 提供将触发更新的触发器。下面是一个例子的链接。(#1个谷歌搜索结果)

  • 尝试添加模式以更新面板标记。如果未指定模式,则默认模式始终为。如果UpdateMode属性始终为,则UpdatePanel控件的内容将在从页面上任何位置发起的每次回发中更新

    
    
    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
    
    <asp:UpdatePanel ID="BugsListUpdatePanel" runat="server" UpdateMode="Conditional">