In this article I will explain with an example, how to hide
GridView column
programmatically in
ASP.Net using C# and VB.Net.
The GridView column will be
programmatically hidden when
CheckBox is
unchecked in
ASP.Net using C# and VB.Net.
HTML Markup
The
HTML Markup consists of following controls:
CheckBox - For hide TemplateField column.
GridView – For displaying data.
Columns
The
GridView consists of two
BoundFIeld columns, and one
TemplateField column.
TemplateField - The TemplateField column consists of ItemTemplate.
ItemTemplate - It consists of a
Label.
<asp:CheckBox ID="chkCountry" Text="Show Hide Country" runat="server" OnCheckedChanged="OnCheckedChanged"
AutoPostBack="true" Checked="true" />
<hr />
<asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="30" />
<asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
<asp:TemplateField HeaderText="Country" ItemStyle-Width="150">
<ItemTemplate>
<asp:Label Text='<%# Eval("Country")%>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Namespaces
You will need to import the following namespace.
C#
VB.Net
Binding the ASP.Net GridView control
Inside the
Page_Load event handler, an object of
DataTable is created.
Then,
three columns are added to the
DataTable Columns collection using the
AddRange method.
An Array of objects of type DataColumn is specified which will hold the name and the optional parameter Data Type i.e. the Type of the column.
Once the schema is ready i.e. all the columns are defined, some rows have been added using the Rows.Add method.
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] {
new DataColumn("Id"),
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;
gvCustomers.DataBind();
}
}
VB.Net
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Dim dt As New DataTable()
dt.Columns.AddRange(New DataColumn(2) {
New DataColumn("Id"),
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
gvCustomers.DataBind()
End If
End Sub
Dynamically Show Hide TemplateField column in ASP.Net GridView
Inside the
OnCheckChanged event handler, the third column i.e.
Country column of the
GridView is made visible or
hidden based on the whether the
CheckBox is
checked or
unchecked respectively.
C#
protected void OnCheckedChanged(object sender EventArgs e)
{
gvCustomers.Columns[2].Visible = (sender as CheckBox).Checked;
}
VB.Net
Protected Sub OnCheckedChanged(sender As Object, e As EventArgs)
gvCustomers.Columns(2).Visible = TryCast(sender, CheckBox).Checked
End Sub
Screenshot
Demo
Downloads