DataGridView七十二般绝技
一、ObjectDataSource的重要属性:
SelectedMethod:获取或设置检索数据的函数或方法的名称
InsertMethod:获取或设置插入数据的函数或方法的名称
UpdateMethod:获取或设置更新数据的函数或方法的名称
DeleteMethod:获取或设置删除数据的函数或方法的名称
TypeName:获取或设置ObjectDataSource对象表示的类的名称,即业务对象的类名
二、GridView中的七种字段
BoundField : 将数据项显示为文本
CheckBoxField : 将数据项显示为复选框
CommandField : 使用链接来支持编辑、删除或选中行
ButtonField : 将数据项显示为按钮(ImageButton、LinkButton、Button)
HyperLinkField : 将数据项显示为超链接
ImageField : 将数据项显示为图片
TemplateField: 自定义数据项的外观
所有这些字段类型都是继承自DataControlField
三、DataControlField的属性
HeaderText/HeaderImageUrl : 标题栏字段/标题栏的图像URL
FooterText : 脚注项的文本
AccessibleHeaderText : 一个字符串,表示由屏幕阅读器读取的缩写文本。
Control: 获取对Field内数据控件的引用
InsertVisible: 插入新记录时,此列是否可见。(不能在GridView控件中使用)
HeaderStyle/FooterStyle/ItemStyle/ControlStyle : 标题项/脚注项/数据项/子WEB控件的样式
SortExpression : 为数据项指定排序表达式
四、BoundField的属性
DataField : 显示的字段
DataFormatString : 字段格式化 注: FormatString经常用来格式化数字、日期、字符串、自定义类型。
HtmlEncode / HtmlEncodeFormatString: 获取或设置一个值,该值指示在 BoundField 对象中显示字段值之前,是否对这些字段值进行 HTML 编码。
ApplyFormatInEditMode: 若要在编辑模式中将格式化字符串应用到字段值,则为 true;否则为 false。默认为 false。
Readonly: 防止该数据项进入编辑模式。
NullDisplayText : 当数据项为NULL时显示的文本
五、CommandField的属性
ButtonType:指定Button类型、可以有Button、Image、Link类型
CancelText/CancelImageUrl: Cancel按钮中的文本/图像URL
DeleteText/DeleteImageUrl: Delete按钮中的文本/图像URL
InsertText/InsertImageUrl: Insert按钮中的文本/图像URL
EditText/EditImageUrl: Edit按钮中的文本/图像URL
UpdateText/UpdateImageUrl: Update按钮中的文本/图像URL
SelectText/SelectImageUrl: Select按钮中的文本/图像URL
NewText/NewImageUrl: New按钮中的文本/图像URL
ShowEditButton/ShowDeleteButton/ShowCancelButton/ShowSelectButton/ShowInsertButton: 是否显示相应按钮
CauseValidation:点击按钮时是否启用校验
ValidationGroup: 指定和编辑按钮相关验证控件组的名称
六、ButtonField的属性
ButtonType : Button类型,可以为Button、Image、LinkButton
CauseValidation : 指定按钮点击时是否引发验证
CommandName : 指定ButtonField关联的标准编辑命令,可以为Delete、Edit、Update、Cancel。或者,可以自定义
DataTextField/DataTextFormatString : 指定按钮文本的数据项/数据项格式
Text : 按钮文本
ValidationGroup : 和按钮相关验证控件组的名称
七、HyperLinkField属性
DataNavigateUrlFields: 在DataNavigateFormatString中使用的列名称
DataNavigateFormatString: 格式链接字符串
DataTextField/DataTextFormatString: 超链接文本/超链接文本格式化
NavigateUrl: 链接到其它页面的URL
Target : 链接目标,可以使用:_blank/_parent/_self/_top
Text: 超链接的文本
八、ImageField的属性
AlternateText : 预备文本
DataAlternateTextField : 使用指定列的值作为预备文本
DataAlternateTextFormatString : 预备文本格式字符串
DataImageUrlField : 存放图片路径的列名
DataImageUrlFormatString : 图片路径格式字符串
NullImageUrl : 指定预备图片
九、TemplateField支持的模板类型
ALternatingItemTemplate : 间隔行模板
EditItemTemlpate : 编辑行模板
FooterTemplate : 脚注模板
HeaderTemplate : 标题模板
InsertItemTemplate: 插入行模板(不支持GridView控件)
ItemTemplate: 每个显示行模板
十、GridView控件RowDataBound事件中获取列字段的几种途径
1. e.Row.Cells[x].Text。 从列单元格的文本值获取。这种方法简单高率,最为常用,但是功能单纯。此法存在几个缺点:
(1)无法获取到设置了隐藏属性的数据列的值,所取到的值为“”(空)。
(2)只能获取在HTML中定义过的数据列,无法查询数据源中的当前数据行的所有字段列。一般情况下,通过HTML设置GridView的字段列的数量往往小于数据源的实际字段数量,这是因为从业务逻辑的角度看,并不是所有的字段都是要显示在页面上的。当需要使用没有被显示的字段时,此法就不能直接满足需求了。
2、e.Row.Cells[x].findControl(“xxx”) as …
e.Row.findControl(“xxx”) as ..
3. (DataRowView)e.Row.DataItem).Row.ItemArray[x].ToString()。 此法的核心是e.Row.DataItem,它是GridView的行数据集,为Object类型,将其转化为DataRowView类型后,可以获得更多的操作方法。此数据集表示数据源当前行的全部字段列,ItemArray[x]是当前行全部字段列的数组对象,可以通过索引x获得任意字段值。此法的强悍之处是可以对数据源的全部字段查询。 4. DataBinder.Eval(e.Row.DataItem, "YourDataFieldName").ToString()。 此法仍然基于e.Row.DataItem,其特点是更快捷的获得数据源的任意字段值,因为使用了DataBinder.Eval(),需要注意的是不要写错字段名称。