GridView.Columns Property

Note: This property is new in the .NET Framework version 2.0.

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 */
public DataControlFieldCollection get_Columns ()

public function get Columns () : DataControlFieldCollection

Property Value

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 allows 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 selecting, editing, or deleting operations.


Displays the value of a field in a data source as a hyperlink. This column field type allows 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 allows 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 code example demonstrates how to populate the Columns collection declaratively.

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

    <form 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%>" 

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0