DataBinder.Eval和Container.DataItem有什么区别

简介:
DataGrid控件,在ItemTemplate显示数据时,
DataBinder.eval_r(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?
 
DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,但是它使用的方式是通过Reflection等开销比较大的方法来达到易用性,因此其性能并不是最好的。
 
Container则根本不是任何一个静态的对象或方法,它是ASP.NET页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是可以进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性.
因此你可以写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView.效率高!


DataBinder通常使用的方法
<%# DataBinder.eval_r(Container.DataItem, "ColumnName") %> 
<%# DataBinder.eval_r(Container.DataItem, "ColumnName", null) %> 
<%# DataBinder.eval_r(Container, "DataItem.ColumnName", null) %> 


Container通常使用的方法
<%# ((DataRowView)Container.DataItem)["ColumnName"] %> 
<%# ((DataRowView)Container.DataItem).Row["ColumnName"] %> 
<%# ((DataRowView)Container.DataItem)["adtitle"] %> 
<%# ((DataRowView)Container.DataItem)[n] %> 
<%# ((DbDataRecord)Container.DataItem)[0] %> 
<%# (((自定义类型)Container.DataItem)).属性.ToString() %>//如果属性为字符串类型就不用ToString()了
目录
相关文章
|
存储 调度 数据库
STM32--DMA
STM32--DMA
311 0
|
存储 Docker 容器
解决 docker 磁盘空间不足问题
解决 docker 磁盘空间不足问题
1544 0
|
8月前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
247 5
|
存储 数据采集 搜索推荐
旅游推荐系统
旅游推荐系统
924 0
|
编译器 C++
C++ 抓取和批量下载网站上的图片或文件
C++ 抓取和批量下载网站上的图片或文件
490 0
|
移动开发 Android开发 iOS开发
react-native 修改包名
react-native 修改包名
516 0
|
存储 Java 开发工具
.iml文件删除导致项目启动失败,报“**类**包不存在”
因为不熟悉iml文件的作用,加上git上是没有提交该文件的,然后看着iml文件一直爆红就很讨厌,就手欠将其删除了,然后项目就各种报,类引用不到,包找不到,项目里的类中引用的类也都爆红,记录下问题的经过。
638 0
.iml文件删除导致项目启动失败,报“**类**包不存在”
|
关系型数据库 应用服务中间件 FESCAR
微服务架构下,解决数据一致性问题的实践
随着业务的快速发展,应用单体架构暴露出代码可维护性差、容错率低、测试难度大和敏捷交付能力差等诸多问题,微服务应运而生。微服务的诞生一方面解决了上述问题,但是另一方面却引入新的问题,其中主要问题之一就是:如何保证微服务间的业务数据一致性。
17717 0
|
安全 算法 物联网
云端一体化差分+安全升级,AliOS Things物联网升级“利器”
随着物联网的日益发展,OTA升级逐渐成为物联网设备的刚性需求,目前物联网设备种类繁多,但并未提供统一的OTA升级方案,针对日益发展的物联网设备,开发者迫切需要一套云端一体化的OTA升级方案来满足快速迭代的产品开发周期,降低产品开发和部署的成本,同时针对物联网低功耗和省流量的场景,AliOS Things推出物联网设备的升级“利器”:云端一体化的差分+安全升级,可以快速修复软件漏洞,更新系统,解决了用户开发部署难,售后维护成本高,升级下载流量大,升级不安全的痛点问题。
4618 0