GridView::AutoGenerateColumns Property


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

Gets or sets a value indicating whether bound fields are automatically created for each field in the data source.

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

property bool AutoGenerateColumns {
	virtual bool get();
	virtual void set(bool value);

Property Value

Type: System::Boolean

true to automatically create bound fields for each field in the data source; otherwise, false. The default is true.

When the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. This option provides a convenient way to display every field in the data source; however, you have limited control of how an automatically generated column field is displayed or behaves.

Instead of letting the GridView control automatically generate the column fields, you can manually define the column fields by setting the AutoGenerateColumns property to false and then creating a custom Columns collection. In addition to bound column fields, you can also display a button column field, a check box column field, a command field, a hyperlink column field, an image field, or a column field based on your own custom-defined template.

You can also combine explicitly declared column fields 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 bound column fields are not added to the Columns collection. For more information, see Columns.

If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. If you do not set the ItemType property, BoundField controls are generated. If you do not want DynamicField controls, you have the following options:

  • Set the ColumnsGenerator property to null in the Page_Load event handler. In that case, BoundField controls are generated.

  • Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.

  • Set AutoGenerateColumns to false. In that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.

  • Do not set the ItemType property. In that case, BoundField controls are generated.

The following example demonstrates how to use the AutoGenerateColumns property to automatically create bound field columns in a GridView control for each field in the data source.

No code example is currently available or this language may not be supported.

.NET Framework
Available since 2.0
Return to top