Hiaishbadve4,
Check this example. Now please take its reference and correct your code.
For this sample I have used of NorthWind database that you can download using the link given below.
Download Northwind Database
Home.aspx
<asp:GridView runat="server" ID="gvColumnName" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="chkColumnName" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ColumnNames" HeaderText="Column Name" />
</Columns>
</asp:GridView>
<br />
<br />
<asp:Button Text="Get Values" runat="server" OnClick="GetValues" />
Home.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[1] { new DataColumn("ColumnNames") });
dt.Rows.Add("CustomerID");
dt.Rows.Add("CompanyName");
dt.Rows.Add("ContactName");
dt.Rows.Add("Address");
dt.Rows.Add("City");
dt.Rows.Add("Country");
gvColumnName.DataSource = dt;
gvColumnName.DataBind();
}
}
protected void GetValues(object sender, EventArgs e)
{
string checkedColumns = "";
foreach (GridViewRow row in gvColumnName.Rows)
{
if ((row.FindControl("chkColumnName") as CheckBox).Checked)
{
checkedColumns += row.Cells[1].Text + ",";
}
}
checkedColumns = checkedColumns.Length > 0 ? checkedColumns.Substring(0, checkedColumns.Length - 1) : checkedColumns;
Server.Transfer("~/Display.aspx?Columns=" + checkedColumns);
}
Home.aspx.vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn(0) {New DataColumn("ColumnNames")})
dt.Rows.Add("CustomerID")
dt.Rows.Add("CompanyName")
dt.Rows.Add("ContactName")
dt.Rows.Add("Address")
dt.Rows.Add("City")
dt.Rows.Add("Country")
gvColumnName.DataSource = dt
gvColumnName.DataBind()
End If
End Sub
Protected Sub GetValues(ByVal sender As Object, ByVal e As EventArgs)
Dim checkedColumns As String = ""
For Each row As GridViewRow In gvColumnName.Rows
If (TryCast(row.FindControl("chkColumnName"), CheckBox)).Checked Then
checkedColumns += row.Cells(1).Text & ","
End If
Next
checkedColumns = If(checkedColumns.Length > 0, checkedColumns.Substring(0, checkedColumns.Length - 1), checkedColumns)
Server.Transfer("~/DisplayVB.aspx?Columns=" & checkedColumns)
End Sub
Display.aspx
<asp:GridView runat="server" ID="gvDetails">
</asp:GridView>
Display.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
if (!string.IsNullOrEmpty(Request.QueryString["Columns"]))
{
string query = "SELECT TOP 10 " + Request.QueryString["Columns"] + " FROM Customers";
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;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
gvDetails.DataSource = dt;
gvDetails.DataBind();
}
}
}
}
}
}
}
Display.aspx.vb
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
If Not String.IsNullOrEmpty(Request.QueryString("Columns")) Then
Dim query As String = "SELECT TOP 10 " & Request.QueryString("Columns") & " FROM Customers"
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
Using dt As DataTable = New DataTable()
sda.Fill(dt)
gvDetails.DataSource = dt
gvDetails.DataBind()
End Using
End Using
End Using
End Using
End If
End If
End Sub
Screenshot
