0

我对学习 asp.net 很陌生,所以我问的问题可能听起来很基本,但我仍然需要一个答案,因为我正在对一些主题进行研发。

我的页面中有 2 个更新面板。每个都包含一个标签。我的页面上有两个按钮,在第一个按钮的单击事件上,第一个更新面板中的标签应该得到更新。单击第二个按钮时,第二个更新面板中的标签应该得到更新。但是,当我单击两个按钮中的任何一个时,两个标签都会更新。

在页面的加载事件中,编写以下代码

        Label2.Text = DateTime.Now.ToString();
        Label3.Text = DateTime.Now.ToString();

两个更新面板的代码如下:

              <asp:UpdatePanel ID="UpdatePanel1" runat="server">
              <ContentTemplate>
              <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
              </ContentTemplate>
              <Triggers>
              <asp:AsyncPostBackTrigger ControlID= "Button1" EventName="click" />

              </Triggers>
              </asp:UpdatePanel>


              <asp:UpdatePanel ID="UpdatePanel2" runat="server">
              <ContentTemplate>
              <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
              </ContentTemplate>
              <Triggers>
              <asp:AsyncPostBackTrigger ControlID="Button2" EventName="click" />
              </Triggers>
              </asp:UpdatePanel>
4

2 回答 2

0

从 page_load 方法中删除代码并将其放置在每个按钮的事件中。因此,对于 button1,您放置更新 label1 的代码,对于 button2,您放置更新 label2 的代码。

于 2013-07-15T20:00:59.137 回答
0

除非您正在执行跨面板事件,否则您甚至不需要触发器。但是,您确实需要正确设置脚本管理器和更新面板:

<asp:ScriptManager ID="ScriptManager1" runat="server" 
    EnablePartialRendering="true"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" 
    UpdateMode="Conditional" OnLoad="Panel1_Load">
  <ContentTemplate>
    <asp:Button ID="Button1" runat="server" Text="Button1"/>
    <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
  </ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" 
    UpdateMode="Conditional" OnLoad="Panel2_Load">
  <ContentTemplate>
    <asp:Button ID="Button2" runat="server" Text="Button2"/>
    <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
  </ContentTemplate>
</asp:UpdatePanel>

在这里,您将代码放入Panel1_Load(){}and中Panel2_Load(){}

注意设置:EnablePartialRendering="true" 和:UpdateMode="Conditional"

如果您不希望asp:Button面板上的控件,则必须将它们放在会阻止其正常的完整回发行为的地方。

于 2013-07-15T20:40:18.530 回答