【发布时间】:2014-03-20 03:51:41
【问题描述】:
我有一个 ASP.NET 网站,我必须在 Gridview 上显示一些数据,我需要尽快显示这些数据,所以我决定在更新面板中创建一个计时器,然后刷新网格一遍又一遍,但是我看到我的计时器没有等到它完成才能再次Tick,它一遍又一遍地执行自己,这给我的数据库带来了性能问题,我怎么能告诉我的计时器“嘿停止,直到这个过程完成,然后继续”。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="400" OnTick="Timer1_Tick" EnableViewState="False">
</asp:Timer>
<asp:GridView ID="gv_stats" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3" ForeColor="Black" ShowHeaderWhenEmpty="True" GridLines="Vertical" Width="562px" OnRowDataBound="gv_stats_RowDataBound" ShowFooter="True" EnableViewState="False" >
<AlternatingRowStyle BackColor="#CCCCCC" />
<Columns>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
我试过这个:
private bool is_refreshing = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
}
}
protected void Timer1_Tick(object sender, EventArgs e)
{
Timer1.Enabled = false;
if(is_refreshing == false)
BindGrid();
Timer1.Enabled = true;
}
public void BindGrid()
{
is_refreshing = true;
grd.datasource = con.executedt;
grd.databind();
is_refreshing = false;
}
【问题讨论】:
-
请将
Timer1_Tick的代码隐藏添加到问题中,并添加您已经尝试过的内容。 -
好的,Anchit,我添加了。
-
查看我编辑的答案。
标签: c# asp.net timer updatepanel