How to update grid data without page refresh in c#

In c# are you using Timer control and set interval as you want and use update panel for do not refresh page

please see under below design code

 <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <div>
        <asp:Timer ID="Timer1" runat="server" Interval="10000">
        </asp:Timer>
    </div>
    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
       <Triggers>

            <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <asp:DataGrid ID="grvDemo" runat="server" Width="100%" GridLines="Both" HeaderStyle-BackColor="AntiqueWhite"
                AutoGenerateColumns="true">
            </asp:DataGrid>
        </ContentTemplate>
    </asp:UpdatePanel>

And Code Side :

using System.Data;
using System.Data.SqlClient;
  
protected void Page_Load(object sender, EventArgs e)
{
    BindGrid();
    
}
public void BindGrid()
{

    //SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
    SqlConnection con = new SqlConnection("Data Source=BITPLUS5\\SqlExpress;Initial Catalog=temp;User ID=sa;pwd=bit123;");
    
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "select * from chat order by 1";


    cmd.Connection = con;

    con.Open();
    SqlDataReader dr = cmd.ExecuteReader();

    grvDemo.DataSource = dr;

    grvDemo.DataBind();
}