GridView.Columns Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets a collection of DataControlField objects that represent the column fields in a GridView control.

Namespace:   System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public virtual DataControlFieldCollection Columns { get; }

Property Value

Type: System.Web.UI.WebControls.DataControlFieldCollection

A DataControlFieldCollection that contains all the column fields in the GridView control.

A column field represents a column in a GridView control. The Columns property (collection) is used to store all the explicitly declared column fields that get rendered in the GridView control. You can also use the Columns collection to programmatically manage the collection of column fields.


Explicitly declared column fields can be used in combination with automatically generated column fields. When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. Automatically generated column fields are not added to the Columns collection.

The column fields are displayed in the GridView control in the order that the column fields appear in the Columns collection. The following table shows the different column field classes that derive from the DataControlField class and can be used in the Columns collection.

Column field type



Displays the value of a field in a data source. This is the default column type of the GridView control.


Displays a command button for each item in the GridView control. This enables you to create a column of custom button controls, such as the Add or the Remove button.


Displays a check box for each item in the GridView control. This column field type is commonly used to display fields with a Boolean value.


Displays predefined command buttons to perform select, edit, or delete operations.


Displays the value of a field in a data source as a hyperlink. This column field type enables you to bind a second field to the hyperlink's URL.


Displays an image for each item in the GridView control.


Displays user-defined content for each item in the GridView control, according to a specified template. This column field type enables you to create a custom column field.

Although you can programmatically add column fields to the Columns collection, it is easier to list the column fields declaratively in the GridView control and then use the Visible property of each column field to show or hide each column field.

If the Visible property of a column field is set to false, the column is not displayed in the GridView control and the data for the column does not make a round trip to the client. If you want the data for a column that is not visible to make a round trip, add the field name to the DataKeyNames property.

The following example demonstrates how to populate the Columns collection declaratively.

<%@ Page language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<html xmlns="" >
  <head runat="server">
    <title>GridView Columns Example</title>
    <form id="form1" runat="server">

      <h3>GridView Columns Example</h3>

      <asp:gridview id="CustomersGridView" 
        emptydatatext="No data available." 

          <asp:boundfield datafield="CustomerID" headertext="Customer ID"/>
          <asp:boundfield datafield="CompanyName" headertext="Company Name"/>
          <asp:boundfield datafield="Address" headertext="Address"/>
          <asp:boundfield datafield="City" headertext="City"/>
          <asp:boundfield datafield="PostalCode" headertext="Postal Code"/>
          <asp:boundfield datafield="Country" headertext="Country"/>


      <!-- This example uses Microsoft SQL Server and connects  -->
      <!-- to the Northwind sample database. Use an ASP.NET     -->
      <!-- expression to retrieve the connection string value   -->
      <!-- from the Web.config file.                            -->
      <asp:sqldatasource id="CustomersSource"
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" 


.NET Framework
Available since 2.0
Return to top