ASP.NET GridView入门
基础知识
定义列
GridView.AutoGenerateColumns
属性设置为true
时,GridView使用反射来检查数据对象并找到所有字段或属性,接着它按发现的次序为它们逐个创建列
可以把AutoGenerateColumns
设置为false
,在<Columns>
中定义列
列的类型可以是:
列 | 描述 |
---|---|
BoundField | 用于显示数据源字段的文本 |
ButtonField | 为列表中每个项目显示一个按钮 |
CheckBoxField | 为列表中的每个项目显示一个复选框。对应真/假字段(SQL Server中这种字段的数据类型为bit),自动使用该类型的列 |
HyperLinkField | 用超链接的形式显示内容(数据源中的一个字段或者静态文本) |
ImageField | 显示二进制的图像数据 |
TemplateField | 允许用自定义模板指定多个字段、自定义控件以及任意的HTML。 |
最基本的列类型是BoundField
,它绑定到数据对象的某个字段上
格式化GridView
格式化字段
通过DataFormatString
属性可以保证日期、货币或者其它数值以正确的格式显示
例如,设置如下的格式显示日期:
<asp:BoundField DataField="BirthDate" HeaderText="Bith Date" DataFormatString="{0:MM/dd/yyyy}" />
显示效果为:
样式
GridView样式的属性有:
- 颜色,ForeColor、BackColor
- 边框,BorderColor、BorderStyle、BorderWidth
- 行的尺寸,Height、Width
- 对齐,HorizontalAlign、VerticalAlign
样式 | 描述 |
---|---|
HeaderStyle | 显示标题列时(ShowHeader设置为true)配置包含列标题的标题行的外观 |
RowStyle | 每个数据行的外观 |
AlternatingRowStyle | 设置交替行的样式 |
SelectedRowStyle | 设置选中行的外观 |
EditRowStyle | 编辑模式的行的外观 |
EmptyDataRowStyle | 配置一种特殊情况下只有单个空行时的外观,这种情况出现在绑定数据对象不包含任何行的时候 |
FooterStyle | 显示注脚时(ShowFooter为true),注脚行的外观 |
PagerStyle | 启用分页时(AllowPaging为true),配置包含页链接的行的外观 |
有两种方式设置样式属性:
1.用GridView开始标签中的特性表示扩展样式,如RowStyle-ForeColor
<asp:GridView ID="GridView1" runat="server" RowStyle-ForeColor="DarkBlue" ...>
2.使用内嵌标签
<asp:BoundField DataField="Country" HeaderText="Country">
<ItemStyle BackColor="LightSteelBlue" />
</asp:BoundField>
格式化特定值
如果希望格式化某个特定行或者某个单元格,可以使用GridView.RowDataBound
事件。
GridView.DataItem
属性提供指定行的数据对象
如下的例子:
protected void gridEmployees_RowDataBound(object sender, GridViewRowEventArgs e)
{
// 检查当前创建的行是不是数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{
// 获取TitleOfCourtesy的值
string title = (string)DataBinder.Eval(e.Row.DataItem, "TitleOfCourtesy");
// If the title of courtesy is "Ms.", "Mrs.", or "Mr.",
// change the item's colors.
if (title == "Ms." || title == "Mrs.")
{
e.Row.BackColor = System.Drawing.Color.LightPink;
e.Row.ForeColor = System.Drawing.Color.Maroon;
}
else if (title == "Mr.")
{