Hi theunclevince,
You didn't implemented the code correctly from the referenced article.
You need to add the GridView inside UpdatePanel and use the Timer OnTick event handler to refresh the GridView.
Refer below example.
HTML
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="lblTime" runat="server" />
<br />
<br />
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="CustomerId" HeaderText="Customer Id" />
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="Country" HeaderText="Country" />
</Columns>
</asp:GridView>
<asp:Timer ID="Timer1" runat="server" OnTick="TimerTick" Interval="1000" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Namespaces
C#
using System.Data;
VB.Net
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
lblTime.Text = "Last Refreshed: " + DateTime.Now.ToString();
this.BindGrid();
}
}
protected void TimerTick(object sender, EventArgs e)
{
lblTime.Text = "Last Refreshed: " + DateTime.Now.ToString();
this.BindGrid();
}
protected void BindGrid()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] {
new DataColumn("CustomerId"),
new DataColumn("Name"),
new DataColumn("Country")
});
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
gvCustomers.DataSource = dt.AsEnumerable().OrderBy(x => Guid.NewGuid()).CopyToDataTable();
gvCustomers.DataBind();
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
lblTime.Text = "Last Refreshed: " & DateTime.Now.ToString()
Me.BindGrid()
End If
End Sub
Protected Sub TimerTick(sender As Object, e As EventArgs)
lblTime.Text = "Last Refreshed: " & DateTime.Now.ToString()
Me.BindGrid()
End Sub
Protected Sub BindGrid()
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(2) {
New DataColumn("CustomerId"),
New DataColumn("Name"),
New DataColumn("Country")})
dt.Rows.Add(1, "John Hammond", "United States")
dt.Rows.Add(2, "Mudassar Khan", "India")
dt.Rows.Add(3, "Suzanne Mathews", "France")
dt.Rows.Add(4, "Robert Schidner", "Russia")
gvCustomers.DataSource = dt.AsEnumerable().OrderBy(Function(x) Guid.NewGuid()).CopyToDataTable()
gvCustomers.DataBind()
End Sub
Screenshot
