How to refresh an ASP.NET GridView automatically at regular intervals

A common requirement is to refresh the GridView after regular intervals. ASP.NET contains the Timer control which comes in very handy to achieve such requirements. Here's how to do so:

Add the GridView and the Timer control inside an ASP.NET AJAX UpdatePanel as shown below :


<asp:UpdatePanel ID="UpdatePanel1" runat="server">


<ContentTemplate>


<asp:Timer ID="Timer1" runat="server" Interval="3600" ontick="Timer1_Tick"></asp:Timer>


<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="CustomerID"


DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True">


<Columns>


<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID" />


<asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName" />


<asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName" />


<asp:BoundField DataField="Address" HeaderText="Address" SortExpression="Address" />


<asp:BoundField DataField="City" HeaderText="City" SortExpression="City" />


</Columns>


</asp:GridView>


</ContentTemplate>


</asp:UpdatePanel>




Then in the code behind, add the following code which refreshes the GridView after every minute

C#


protected void Timer1_Tick(object sender, EventArgs e)


{


GridView2.DataBind();


}




VB.NET


Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)


GridView2.DataBind()


End Sub




Will you give this article a +1 ? Thanks in advance


About The Author

Suprotim Agarwal
Suprotim Agarwal, ASP.NET Architecture MVP (Microsoft Most Valuable Professional) works as an Architect Consultant and provides consultancy on how to design and develop Web applications.

Suprotim is also the founder and primary contributor to DevCurry, DotNetCurry and SQLServerCurry. He is the Editor of a Developer Magazine called DNC Magazine. He has also written two EBooks 51 Recipes using jQuery with ASP.NET Controls. and The Absolutely Awesome jQuery CookBook

Follow him on twitter @suprotimagarwal

20 comments:

Anonymous said...

Thank you and best of luck with the book.

Anonymous said...

sank youu

Rickson Menezes said...

Gives me an error, Update Panel requires ScriptManager

Rickson Menezes said...

I added a script Manager tag just above the Update Panel and it worked. It was updating my gridview every x seconds

Anonymous said...

Hello, im getting a PageRequestManagerParseErrorException, i have the code just like you suggest, what might be going wrong?

Thank you.

Suprotim Agarwal said...

For the PageRequestManagerParseErrorException error, try this link

http://weblogs.asp.net/leftslipper/archive/2007/02/26/sys-webforms-pagerequestmanagerparsererrorexception-what-it-is-and-how-to-avoid-it.aspx

Anonymous said...

some of the function within the grid not work??

Rahul Ostwal said...

I am filling data after every 5 min. but by this code first time it take 5 min. to fill grid. how to avoid this?

Pål Sølvberg said...

Hi Rahul.
You just have to fire the Databinder code in PageLoad, like this:

protected void Page_Load(object sender, EventArgs e)

{

GridView2.DataBind();

}

Anonymous said...

LO MAS GRANDE MUCHAS GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!

FCP

Anonymous said...

Simply gr8.........

DIM said...

Thanks for great article!!!!What we can do if we have 2 datagridviews and we want update every 5 seconds with different select commands both???

Alex Segura said...

Appreciate it!

lingmaaki said...

Check here..all about..Asp.Net Gridview

Ling

Kalyani Bothra said...

Thanks for this article. It was very beneficial for us.

Rational Rogue said...

I know I'm quite late to this comment thread but I'm a bit green when it comes to ASPX gridview and I could use some feedback.

I have three gridviews with different sql query results being displayed that have paginated results. These gridview forms will be displayed on a monitor for an entire department and will need to automatically iterate through the paged results every two to three minutes continuously.

While I am familiar enough with PHP to make this happen. I'm utterly lost when it comes to making this happen in aspx. Can you offer some very simple and straight forward feedback on how I might get this working?

Rational Rogue said...

I have successfully added the GridView and Timer control inside my ASPX.NET page and have updated the associated VB.NET file with the code noted. I also ran into the ScriptManager issue which I've added successfully. However, the gridview is not paging automatically.

Is the C# code a requirement? I am extremely new to this, so thanks in advance for your patience with my question.

Suprotim Agarwal said...

In addition to automated Paging, do you want to be able to Sort and Paginate manually too? C# is not a requirement but the VB.NET code I posted was done using a translation tool. I know only C#.

Rational Rogue said...

Thanks so much for responding. I was finally able to get one of the gridviews looping through the pages results on a timer. :-)

Suprotim Agarwal said...

Glad to hear that!