灵活的运用数据绑定操作
        绑定到简单属性:<%#UserName%>
        绑定到集合:<asp:ListBox id="ListBox1" datasource='<%# myArray%>' runat="server">
        绑定到表达式:<%#(class1.property1.ToString() + "," + class1.property2.ToString())%>
        绑定到方法返回值:<%# GetSafestring(str) %>
        绑定到Hashtable:<%# ((DictionaryEntry)Container.DataItem).Key%>
        绑定到ArrayList:<%#Container.DataItem %>

若数组里里放的是对象则可能要进行必要的转换后再绑定如:
        <%#((对象类型)Container.DataItem).属性%>

绑定到DataView,DataTable,DataSet:
        <%#((DataRowView)Container.DataItem)["字段名"]%>或
        <%#((DataRowView)Container.DataItem).Rows[0]["字段名"]%>
        要格式化则:
        <%#string.Format("格式",((DataRowView)Container.DataItem)["字段名"])%>
        <%#DataBinder.Eval(Container.DataItem,"字段名","格式")%>

绑定到DataReader:
        <%#((IDataReader)Container.DataItem).字段名%>

当然为了方便一般使用最多的就是DataBinder类的Eval方法了.只是这样对于同一时候要绑定大量的数据效率要低一些

在绑定数据时常常会用到这个句程序:<%# DataBinder.Eval(Container.DataItem,"xxxx")%>或者<%# DataBinder.Eval(Container,"DataItem.xxxx")%>

今天又学到一种,并且微软也说这样的方法的效率要比以上两种高。

<%# ((DataRowView)Container.DataItem)["xxxx"]%>

非常实用的,这样能够在前台页面做好多事情了。

还要记住要这样用必需要在前台页面导入名称空间System.Data,否则会生成错误信息。

<%@ Import namespace="System.Data" %>

这样的使用方法事实上和<%# ((DictionaryEntry)Container.DataItem).Key%>是一个道理。

绑定到DataSet、DataTable时:

<%#((System.Data.DataRowView)Container.DataItem)["字段名"]%>
<%#((System.Data.DataRowView)Container.DataItem)[索引]%>

绑定到DataReader时:
<%#((System.Data.Common.DbDataRecord)Container.DataItem)[索引]%>
<%#((System.Data.Common.DbDataRecord)Container.DataItem)["字段名"]%>

关键是Container这个东西,它比較神奇。它的名称空间是System.ComponentModel。对于它我还须要进一步理解。

初学.NET,如今在看DataGrid控件,在ItemTemplate显示数据时,
DataBinder.Eval(Container.DataItem,"Name")和Container.DataItem("Name")有什么差别?

DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,可是它使用的方式是通过Reflection等开销比較大的方法来达到易用性,因此其性能并非最好的。而Container则根本不是不论什么一个静态的对象或方法,它是ASP.NET页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是能够进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性,因此你能够写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。假设你的数据源是DataTable,则这个数据项的类型实际是DataRowView。

数据绑定以及Container.DataItem几种方式与使用方法分析相关推荐

  1. 数据绑定以及Container.DataItem几种方式与用法分析 收藏

    数据绑定以及Container.DataItem几种方式与用法分析 收藏 灵活的运用数据绑定操作         绑定到简单属性:<%#UserName%>         绑定到集合:& ...

  2. 数据绑定以及Container.DataItem绑定技巧

    数据绑定以及Container.DataItem绑定技巧 灵活的运用数据绑定操作          绑定到简单属性:<%#UserName%>          绑定到集合:<asp ...

  3. Gps高程拟合matlab代码,几种GPS高程拟合方法分析与比较.doc

    几种GPS高程拟合方法分析与比较 几种GPS高程拟合方法分析与比较 摘 要:文章论述了几种常用的GPS高程拟合的方法,并在MATLAB中编制了相应的程序,建立了相应的GPS高程拟合模型,并通过实例数据 ...

  4. Java中字符串拼接的几种方式(源码分析)

    字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起. 我们都知道,String是Java中一个不可变的类,所以他一旦被实例化就无法被修改. 不可变类的实例一旦创建,其成员变 ...

  5. 前端百题——竟然有五种方式实现flat方法

    1 背景 不知道老铁们有没有遇到过一道面试题:如何将一个多维数组展开成一个一维数组?当时我遇到的时候还不了解flat这个神奇的方法,用了最传统的解决方法进行解决. const flatten = ar ...

  6. 前端百题斩【020】——竟然有五种方式实现flat方法

    写该系列文章的初衷是"让每位前端工程师掌握高频知识点,为工作助力".这是前端百题斩的第20斩,希望朋友们关注公众号"执鸢者",用知识武装自己的头脑. 20.1 ...

  7. table表头固定4种方法_4种细砂回收的方法分析

    在整条制砂生产线合理又环保的配置方法中,配备脉冲除尘器和水洗洗砂机是流行趋势.经洗砂机清洗过的砂子表面洁净,有良好的质感,同时也能减少生产过程中的粉尘和噪音污染.但在洗砂过程中,细砂和面砂会随着水的流 ...

  8. Android获取当前位置的三种方式及其使用方法

    1.GPS定位 2.基站定位 此类位置的获取有赖于手机无线通讯信号,当手机处在信号覆盖范围内,手机可以获得该区域(即通讯术语中的"小区")的识别号.因为这些识别号是惟一的,因此可以 ...

  9. JVM内存溢出的几种方式与解决方法

    内存溢出 JVM运行时首先需要类加载器(classLoader)加载所需类的字节码文件.加载完毕交由执行引擎执行,在执行过程中需要一段空间来存储数据(类比CPU与主存).这段内存空间的分配和释放过程正 ...

  10. 小程序可通过这三种方式去做竞品分析

    随着互联网+小程序的深入和技术的革新,互联网行业早已不是纯互联网产品的行业了,我们的竞争对手也不仅限于同行,因此竞品分析的视野也要放大到各行各业.那么竞品的分类有哪些?我们应该如何去选择? 1. 直接 ...

最新文章

  1. 北理工硕士被指抄袭投稿论文,校方通报:留校察看
  2. 前Citrix CTO认为虚拟化将解决现有的安全问题
  3. python中用来捕获异常的是_python – 在一行中捕获多个异常(块除外)
  4. VTK:绘制封顶球CappedSphere用法实战
  5. Java 实现基于 UDP 的简单 socket 通信
  6. 串口光猫设备结构及主要特点介绍
  7. 两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)
  8. 方法对头,报表模板维护其实很简单
  9. 洛谷P1880 石子合并(区间DP)(环形DP)
  10. YOLO V1论文理解
  11. Pazera Free MP4 To MP3 Converter 1.6 中文64位+32位便携版,免费的视频转换器
  12. DHCP中继配置(思科)
  13. 第08章 Tableau在线服务器
  14. 硬件级光线追踪:移动游戏图形的变革时刻
  15. 基于Bootstrap模板创建门户网站vue项目03
  16. python卡方检验计算pvalue值_Python数据科学:卡方检验
  17. 实践 ArcGIS Web 3D
  18. 2021年年总结:你无法让每个人都满意,甚至是大多数人。
  19. 炼丹工程师的自我修养
  20. 了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)

热门文章

  1. 【C++】将(数组)数据写入csv文件
  2. 从零基础入门Tensorflow2.0 ----九、44.4 签名函数转换成savedmodel
  3. 《剑指offer》面试题30——最小的k 个数
  4. 机器学习第五回——支持向量机SVM
  5. ArcGIS学习总结(16)——反距离权重法插值及批处理(IDW)
  6. php数据库密码查询,php数据库查询及密码匹配的功能
  7. Gson源码解析之InstanceCreator简单说明
  8. CXF +ws-security 和HttpURLConnection实现webservic请求
  9. FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,推流拉流
  10. 高考340分理科学计算机,2021年高考340分可以上什么大学 340分左右的院校