0

I try to refresh page with timer every 1 minute and display data in gridview on next page until last record. What should I do?

protect void Timer1_Tick(object sender, EventArgs e)
{ 
   if(GridView1.PageIndex==GridView.PageCount)
   {
      GridView1.PageIndex=1;
   } 
   else 
   {  int pageno = GridView1.PageIndex+1; 
      GridView1.PageIndex=pageno;
   } 
   GridView1.DataBind(); Timer1.Interval=600000;
}
4

1 回答 1

3

PageIndex是从零开始的索引,PageCount计算方法是将数据源中的记录总数除以页面中显示的记录数(由 PageSize 属性指定)并向上取整。

所以PageIndex永远不会等于PageCount

if(GridView1.PageIndex == (GridView1.PageCount -1))
{
   GridView1.PageIndex = 0;
}
else
{
   GridView1.PageIndex = GridView1.PageIndex + 1;
}
GridView1.DataBind();

您可以使用 Ajax 更新面板并将网格放在面板内。然后你可以在其中设置为的OnTick事件中使用上面的代码,例如检查下面的SO问题TimerAsyncPostBackTrigger

UpdatePanel 中的计时器

于 2013-11-12T02:25:07.297 回答