This documentation is archived and is not being maintained.

BoundField Class

Represents a field that is displayed as text in a data-bound control.

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

[AspNetHostingPermissionAttribute(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermissionAttribute(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
public class BoundField : DataControlField

The BoundField class is used by data-bound controls (such as GridView and DetailsView) to display the value of a field as text. The BoundField object is displayed differently depending on the data-bound control in which it is used. For example, the GridView control displays a BoundField object as a column, while the DetailsView control displays it as a row.

To specify the field to display in a BoundField object, set the DataField property to the field's name. The field's value can be HTML-encoded before it is displayed by setting the HtmlEncode property to true. You can apply a custom formatting string to the field's value by setting the DataFormatString property. When the HtmlEncode property is true, the encoded string value of the field is used in the custom format string. By default, the formatting string is applied to field values only when the data-bound control is in read-only mode. To apply the formatting string to values displayed while the data-bound control is in edit mode, set the ApplyFormatInEditMode property to true. If a field's value is null, you can display a custom caption by setting the NullDisplayText property. The BoundField object can also automatically convert empty string ("") field values to null values by setting the ConvertEmptyStringToNull property to true.

You can hide a BoundField object in a data-bound control by setting the Visible property to false. To prevent the value of a field from being modified in edit mode, set the ReadOnly property to true. In data-bound controls that support inserting records (such as the DetailsView control), you can hide a BoundField object by setting the InsertVisible property to false. This is commonly done when you want to hide an automatically generated key field in insert mode.

You can customize the header and footer sections of a BoundField object. To display a caption in the header or footer sections, set the HeaderText or FooterText properties, respectively. Instead of displaying text in the header section, you can display an image by setting the HeaderImageUrl property. The header section can be hidden in the BoundField object by setting the ShowHeader property to false.


Some data-bound controls (such as the GridView control) can show or hide only the entire header section of the control. These data-bound controls do not support the ShowHeader property for an individual bound field. To show or hide the entire header section of a data-bound control (if available), use the control's ShowHeader property.

You also can customize the appearance of the BoundField object (font color, background color, and so on) by setting the style properties for the different parts of the field. The following table lists the different style properties.

Style property



The style settings for the child Web server controls of the BoundField object.


The style settings for the footer section of the BoundField object.


The style settings for the header section of the BoundField object.


The style settings for the data items in the BoundField object.

The following code example demonstrates how to use a BoundField object to display the values of a field in a GridView control.

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

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

      <h3>BoundField Example</h3>

      <asp:gridview id="CustomersGridView" 

          <asp:boundfield datafield="CustomerID" 
            headertext="Customer ID"/>
          <asp:boundfield datafield="CompanyName"
            headertext="Customer Name"/>
          <asp:boundfield datafield="Address"
          <asp:boundfield datafield="City"
          <asp:boundfield datafield="PostalCode"
            headertext="ZIP Code"/>
          <asp:boundfield datafield="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="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
        updatecommand="Update Customers Set CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country Where (CustomerID = @CustomerID)"
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"


Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

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

.NET Framework

Supported in: 3.5, 3.0, 2.0