AsyncPostBackTimeout不更新updatepanel中的数据

本文关键字:数据 updatepanel 更新 AsyncPostBackTimeout | 更新日期: 2023-09-27 17:49:16

我想在没有回发的情况下在更新面板中更新数据。

我在aspx上编写了以下代码:

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="30">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="upPanel" runat="server">
        <ContentTemplate>
            <asp:Label ID="lblCount" runat="server"></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>

每半分钟更新一次标签,我在页面加载上写了下面的代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        lblCount.Text = DateTime.Now.ToShortTimeString();
    }

但是它没有更新标签,即使我给了

AsyncPostBackTimeout="30"

.

是我错了吗?

我想在updatepanel中更新标签,而不需要在一定的时间间隔内回发。

编辑:

 <asp:UpdatePanel ID="upPanel" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>

            <asp:Label ID="lblCount" runat="server"></asp:Label>
        </ContentTemplate>.
    </asp:UpdatePanel>

AsyncPostBackTimeout不更新updatepanel中的数据

要每30秒更新一次你的页面,你可以使用计时器:

<head runat="server">
<title></title>
<script runat="server" type="text/c#">
    protected void Timer1_Tick(object sender, EventArgs e)
    {
        lblCount.Text = "Panel refreshed at: " + DateTime.Now.ToLongTimeString();
    }
</script>

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="30">
    </asp:ScriptManager>
    <asp:Timer runat="server" id="Timer1" Interval="30000" OnTick="Timer1_Tick"></asp:Timer>
    <asp:UpdatePanel ID="upPanel" runat="server">
         <Triggers>
            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:Label ID="lblCount" runat="server" Text="Page not refreshed yet."></asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

@Nipun Ambastha建议添加AsyncPostBackTrigger触发器。

如果没有AsyncPostBackTrigger,计时器必须放在UpdatePanel内部:

protected void Timer1_Tick(object sender, EventArgs e)
    {
        Label1.Text = "Panel refreshed at: " +
DateTime.Now.ToLongTimeString();
    }
<form id="form2" runat="server">
    <asp:ScriptManager runat="server" ID="ScriptManager2">
    </asp:ScriptManager>
    <asp:UpdatePanel runat="server" ID="UpdatePanel1">
        <ContentTemplate>
            <asp:Timer runat="server" ID="Timer2" Interval="30000" OnTick="Timer1_Tick"></asp:Timer>
            <asp:Label runat="server" Text="Page not refreshed yet." ID="Label1">
            </asp:Label>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Label runat="server" Text="Label" ID="Label3"></asp:Label>
</form>

你实际上没有使用Async Trigger,为了更新面板,你需要声明Async Trigger。

请检查此urlhttp://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger (v = vs.110) . aspx

更详细http://www.asp.net/ajax/documentation/live/overview/UpdatePanelOverview.aspx