asp.net – 最佳实践:DataBound with loop vs RowDataBound
发布时间:2020-12-16 09:25:20 所属栏目:asp.Net 来源:网络整理
导读:如果要对GridView的每一行执行操作,通常会使用RowDataBound.但另外,您也可以使用DataBound并遍历那里的每一行.除了在RowDataBound中保存foreach代码行之外,这两种方法都有任何优点/缺点吗? (表现还是其他?) 解决方法 无论如何都会为每一行触发RowDataBound
如果要对GridView的每一行执行操作,通常会使用RowDataBound.但另外,您也可以使用DataBound并遍历那里的每一行.除了在RowDataBound中保存foreach代码行之外,这两种方法都有任何优点/缺点吗? (表现还是其他?)
解决方法
无论如何都会为每一行触发RowDataBound,因此您不需要在DataBound事件中添加额外的循环.但是,由于这是微优化,主要区别在于使用foreach循环行将为您提供
DataControlRowType DataRow的行,而RowDataBound事件也为您提供其他
RowTypes
> DataRow:数据控件的数据行.只有DataRow行才可以 例如,如果你想要页脚: 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无关的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 使用ASPX View Engine与MVC 5
- 在ASP.NET中的JQuery FullCalendar实现
- asp.net阻止表单提交两次
- asp.net-core-mvc – 如何在Asp.Net Core中自定义Developer
- entity-framework – 如果EF 5,如何定义自定义命名约定
- asp.net-web-api – WebAPI:403在发布网站后被禁止
- asp.net – 从wsdl生成webservice
- asp.net – 性能监视器显示活动的4294967293个会话
- 三种属性操作性能比较:PropertyInfo + Expression Tree +
- asp.net-mvc – 控制器名称是否来自类名?