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>
要每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