gpt4 book ai didi

asp.net - 同时更新两个更新面板

转载 作者:行者123 更新时间:2023-11-30 23:51:46 25 4
gpt4 key购买 nike

我有两个 ASP.NET AJAX UpdatePanels 。
有两个间隔不同的计时器。
是否可以同时更新两个更新面板?
像多线程应用程序。
每个都应该一次在单独的线程中进行 UpdatePanel 更新。
我写了这段代码,但第二个计时器不起作用:

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
Welcome to ASP.NET!
</h2>
<p>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
</p>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" Interval="2000">
</asp:Timer>
<asp:Timer ID="Timer2" runat="server" Interval="2000">
</asp:Timer>
</asp:Content>

代码背后:
  Protected Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
Label1.Text = Date.Now
End Sub

Protected Sub Timer2_Tick(sender As Object, e As System.EventArgs) Handles Timer2.Tick
Label2.Text = Date.Now
End Sub

最佳答案

实际上,在此示例中,您的 UpdatePanel 毫无用处,因为您的 Timer 在它们之外。因此,每次您的事件被触发时,它都会刷新整个页面。 (这就是为什么您永远不会看到第二个计时器被命中的部分原因——当第一个计时器被命中时,整个页面都会刷新,因此计数器会在第一个计时器上重置)

因此,您需要完成两件事来修复您的页面:

  • 让 UpdatePanels 与计时器一起正常工作,以便只有 异步 回发正在发生。
  • 确保每个 Timer 只导致一个 UpdatePanel 刷新。

  • 第一个可以通过将 Timer 作为子项移动到 UpdatePanel 中或使用 <asp:Triggers> 来解决。元素基本上说“唯一会更新我的 UpdatePanel 的是这个计时器。”

    第二个可以通过设置 UpdateMode=Conditional 来处理。每个 UpdatePanel 上的属性。

    尝试这个:
    <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
    Welcome to ASP.NET!
    </h2>
    <p>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    </p>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
    <ContentTemplate>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer1" />
    </Triggers>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
    <ContentTemplate>
    <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer2" />
    </Triggers>
    </asp:UpdatePanel>
    <asp:Timer ID="Timer1" runat="server" Interval="2000" ontick="Timer1_Tick">
    </asp:Timer>
    <asp:Timer ID="Timer2" runat="server" Interval="2000" ontick="Timer2_Tick">
    </asp:Timer>
    </asp:Content>

    我现在必须跑去上类,如果你有任何问题,请耐心等待;-)

    关于asp.net - 同时更新两个更新面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512906/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com