两个更新面板在同一页面上,不要刷新独立

Two updatepannels on same page, dont refresh indepedanty

提问人:Naish 提问时间:9/15/2023 最后编辑:Naish 更新时间:9/20/2023 访问量:15

问:

我有两个带有 Lablel 的更新面板和一个按钮。

当我单击按钮时,它会发送请求并等待 5 秒,然后随着时间的推移更新标签。

当我单击 btn1 时,等待 5 秒,代码工作正常。当我单击 btn2 时,等待 5 秒,代码工作正常。 但是当我单击 btn1 时,在没有等待响应(5 秒之前)的情况下,我单击了 btn2,只有第二个 updatepannel 标签 - lbl2 正在更新。

服务器有什么方法可以独立处理这两个请求吗?

这是我的代码:

<asp:UpdatePanel runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional" >
        <ContentTemplate> 
            <asp:Label Text="text" runat="server" ID="lbl1" />
            <asp:Button Text="ok1" runat="server" ID="btn1" OnClick="btn1_Click"      />
        </ContentTemplate>
        <Triggers >
            <asp:AsyncPostBackTrigger ControlID="btn1" EventName="Click" />  
        </Triggers>   
    </asp:UpdatePanel>

    <asp:UpdatePanel runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
        <ContentTemplate> 
            <asp:Label Text="text" runat="server" ID="lbl2" />
            <asp:Button Text="ok2" runat="server" ID="btn2" OnClick="btn2_Click"       />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btn2" EventName="Click" />  
        </Triggers>    
    </asp:UpdatePanel>

======================================================================================

protected void btn1_Click(object sender, EventArgs e)
        {
            Thread.Sleep(5000);
            lbl1.Text = "Done2 "+ DateTime.Now.ToString();
        }

 
        protected void btn2_Click(object sender, EventArgs e)
        {
            Thread.Sleep(5000);
            lbl2.Text = "Done4 " + DateTime.Now.ToString();
        }

根据我的要求,当我单击 btn1 时,然后在 2 秒后单击 btn2,

LBL1 应在 3 秒后更新,LBL2 应在 5 秒后更新。

asp.net Ajax UpdatePanel

评论

0赞 Laurenz Albe 9/20/2023
更多的标签和更清晰的描述会有所帮助。

答: 暂无答案