如果要对GridView的每一行执行操作,通常会使用RowDataBound.但另外,您也可以使用DataBound并遍历那里的每一行.除了在RowDataBound中保存foreach代码行之外,这两种方法都有任何优点/缺点吗?(表现还是其他?)
RowDataBound无论如何都会触发每一行,因此您不需要在DataBound 事件中添加额外的循环.然而,因为这是微优化的主要区别是,随着循环的行foreach会给你只是行,而事件使您还有其他如DataControlRowType DataRowRowDataBoundRowTypes
例如,如果你想要页脚:
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.Footer)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
随着foreach你得到的只有DataRows:
foreach(GridViewRow row in gridView1.Rows)
{
// no footer here
}
Run Code Online (Sandbox Code Playgroud)
该DataBound事件的一个优点 是您知道在此阶段所有行都已经数据绑定.在RowDataBound 您无法访问第一行中第二行的控件/文本.但是,如果您需要这个,最好使用底层DataSource(例如a DataTable)来获取所需的值(fe来聚合列).
因此,主要目的DataBound 是如果你想在网格数据绑定之后立即触发一次,而不是每次触发GridViewRow.也许与完全没有关系的东西GridView.
| 归档时间: |
|
| 查看次数: |
2569 次 |
| 最近记录: |