Refer the below sample code for your reference.
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btnFirst" runat="server" Text="First" OnClick="OnclickFirst" />
<br />
<asp:GridView ID="gvCustomerDetails1" runat="server">
</asp:GridView>
<br />
<br />
<asp:Button ID="btnSecond" runat="server" Text="Second" OnClick="OnclickSecond" />
<br />
<asp:GridView ID="gvCustomerDetails2" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
Namespaces
C#
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
VB.Net
Imports System.Data
Imports System.Data.SqlClient
Code
C#
private DataTable CustomerDetails
{
get
{
return ViewState["CustomerDetails"] != null ? (DataTable)ViewState["CustomerDetails"] : null;
}
set
{
ViewState["CustomerDetails"] = value;
}
}
protected void OnclickFirst(object sender, EventArgs e)
{
// Check the the Viestate property
if (CustomerDetails == null)
{
CustomerDetails = GetData("SELECT TOP 5 [CustomerID] ,[CompanyName] ,[ContactName] ,[City] FROM [Customers]");
}
// Rest code
gvCustomerDetails1.DataSource = CustomerDetails;
gvCustomerDetails1.DataBind();
}
protected void OnclickSecond(object sender, EventArgs e)
{
// Check the the Viestate property
if (CustomerDetails == null)
{
CustomerDetails = GetData("SELECT TOP 5 [CustomerID] ,[CompanyName] ,[ContactName] ,[City] FROM [Customers]");
}
// Rest code
gvCustomerDetails2.DataSource = CustomerDetails;
gvCustomerDetails2.DataBind();
}
private DataTable GetData(string query)
{
DataTable dt = new DataTable();
string constr = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(query))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
sda.SelectCommand = cmd;
sda.Fill(dt);
}
}
return dt;
}
}
VB.Net
Private Property CustomerDetails As DataTable
Get
Return If(ViewState("CustomerDetails") IsNot Nothing, CType(ViewState("CustomerDetails"), DataTable), Nothing)
End Get
Set(ByVal value As DataTable)
ViewState("CustomerDetails") = value
End Set
End Property
Protected Sub OnclickFirst(ByVal sender As Object, ByVal e As EventArgs)
'Check the the Viestate property
If CustomerDetails Is Nothing Then
CustomerDetails = GetData("SELECT TOP 5 [CustomerID] ,[CompanyName] ,[ContactName] ,[City] FROM [Customers]")
End If
'Rest code
gvCustomerDetails1.DataSource = CustomerDetails
gvCustomerDetails1.DataBind()
End Sub
Protected Sub OnclickSecond(ByVal sender As Object, ByVal e As EventArgs)
'Check the the Viestate property
If CustomerDetails Is Nothing Then
CustomerDetails = GetData("SELECT TOP 5 [CustomerID] ,[CompanyName] ,[ContactName] ,[City] FROM [Customers]")
End If
'Rest code
gvCustomerDetails2.DataSource = CustomerDetails
gvCustomerDetails2.DataBind()
End Sub
Private Function GetData(ByVal query As String) As DataTable
Dim dt As DataTable = New DataTable()
Dim constr As String = ConfigurationManager.ConnectionStrings("ConStr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand(query)
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.CommandType = CommandType.Text
cmd.Connection = con
sda.SelectCommand = cmd
sda.Fill(dt)
End Using
End Using
Return dt
End Using
End Function
Screenshot