如果要对GridView的每一行执行操作,通常会使用RowDataBound.但另外,您也可以使用DataBound并遍历那里的每一行.除了在RowDataBound中保存foreach代码行之外,这两种方法都有任何优点/缺点吗? (表
DataControlRowType
DataRow的行,而RowDataBound事件也为您提供其他
RowTypes
> DataRow:数据控件的数据行.只有DataRow行才可以
数据绑定.
> EmptyDataRow:数据绑定控件的空行.该
当数据绑定控件没有记录时,将显示空行
display和EmptyDataTemplate模板不为null.
>页脚:数据控件的页脚行.页脚行不能是数据绑定的.
>标题:数据控件的标题行.标题行不能
数据绑定.
>寻呼机:显示寻呼机按钮或寻呼机控件的行.
>分隔符
例如,如果你想要页脚:
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.Footer) { // ... } }
使用foreach只能获得DataRows:
foreach(GridViewRow row in gridView1.Rows) { // no footer here }
DataBound事件的一个优点是您知道在此阶段所有行都已经数据绑定.在RowDataBound中,您无法访问第一行中第二行的控件/文本.但是,如果您需要这个,最好使用底层的DataSource(例如DataTable)来获取所需的值(例如聚合列).
所以DataBound的主要目的是,如果你想在网格数据绑定之后立即触发一次,而不是每个GridViewRow.也许与GridView无关的东西.