似乎是利用~~~BoundField具体怎么作,请各位指教.先谢谢了~~~

解决方案 »

  1.   

    <asp:boundfield datafield="City"
                convertemptystringtonull="true"
                headertext="City"/>
    数据绑定控件(例如 GridView 和 DetailsView)使用 BoundField 类以文本显示字段的值。根据在其中使用 BoundField 对象的数据绑定控件,该对象会以不同的方式显示。例如,GridView 控件将 BoundField 对象显示为一列,而 DetailsView 控件则将该对象显示为一行。若要指定在 BoundField 对象中显示的字段,请将 DataField 属性设置为字段的名称。通过将 HtmlEncode 属性设置为 true,可以在显示字段的值之前对其进行 HTML 编码。通过设置 DataFormatString 属性,可以将自定义格式化字符串应用到字段的值。默认情况下,只有当数据绑定控件处于只读模式时,格式化字符串才能应用到字段值。当数据绑定控件处于编辑模式时,若要将格式化字符串应用到显示的值,请将 ApplyFormatInEditMode 属性设置为 true。如果字段的值为空,则可以通过设置 NullDisplayText 属性显示自定义标题。通过将 ConvertEmptyStringToNull 属性设置为 true,BoundField 对象,也可以将空字符串 ("") 字段值自动转换为空值。通过将 Visible 属性设置为 false,可以在数据绑定控件中隐藏 BoundField 对象。若要防止字段的值在编辑模式中被修改,请将 ReadOnly 属性设置为 true。在支持插入记录的数据绑定控件(例如 DetailsView 控件)中,通过将 InsertVisible 属性设置为 false,可以隐藏 BoundField 对象。这种情况通常出现在想要在插入模式中隐藏自动生成的键字段时。可以自定义 BoundField 对象的标头和脚注部分。若要在标头或脚注部分显示标题,请分别设置 HeaderText 或 FooterText 属性。可以通过设置 HeaderImageUrl 属性来显示图像,而不是在标头部分中显示文本。通过将 ShowHeader 属性设置为 false,可以将标头部分隐藏在 BoundField 对象中。列字段
    GridView 控件中的每一列由一个 DataControlField 对象表示。默认情况下,AutoGenerateColumns 属性被设置为 true,为数据源中的每一个字段创建一个 AutoGeneratedField 对象。每个字段然后作为 GridView 控件中的列呈现,其顺序同于每一字段在数据源中出现的顺序。通过将 AutoGenerateColumns 属性设置为 false,然后定义您自己的列字段集合,您也可以手动控制哪些列字段将显示在 GridView 控件中。不同的列字段类型决定控件中各列的行为。下表列出了可以使用的不同列字段类型。列字段类型 
     说明 
     
    BoundField 
     显示数据源中某个字段的值。这是 GridView 控件的默认列类型。 
     
    ButtonField 
     为 GridView 控件中的每个项显示一个命令按钮。这使您可以创建一列自定义按钮控件,如“添加”按钮或“移除”按钮。 
     
    CheckBoxField 
     为 GridView 控件中的每一项显示一个复选框。此列字段类型通常用于显示具有布尔值的字段。 
     
    CommandField 
     显示用来执行选择、编辑或删除操作的预定义命令按钮。
     
    HyperLinkField 
     将数据源中某个字段的值显示为超链接。此列字段类型允许您将另一个字段绑定到超链接的 URL。 
     
    ImageField 
     为 GridView 控件中的每一项显示一个图像。
     
    TemplateField 
     根据指定的模板为 GridView 控件中的每一项显示用户定义的内容。此列字段类型允许您创建自定义的列字段。
     
      

  2.   

    让我说的再清楚一些:
    在Page_Load事件中,
    手动绑定一个BoundField.
      

  3.   

    各位帮帮忙啊~~现在我利用下面代码(代码凑活看),绑定数据列,但是当我点击,列名排序时,就会出现错误.:bf = new BoundField();
                bf.DataField = al[i].ToString();
                bf.SortExpression = al[i].ToString();
                if (alH[i] != null)
                {
                    bf.HeaderText = alH[i].ToString();
                }
                
                grdvMain.Columns.Add(bf);
                grdvMain.Columns[i + 3].SortExpression = al[i].ToString();错误信息如下:值不能为空。
    参数名: propName 
    [ArgumentNullException: 值不能为空。
    参数名: propName]
       System.Web.UI.DataBinder.GetPropertyValue(Object container, String propName) +286