灵活的运用数据绑定操作
        绑定到简单属性:<%#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. android xml转换成svg,如何将Android xml布局转换为png / svg以在iOS版本中使用
  2. 自然语言对话:未来发展的机遇在哪里?
  3. placeholder兼容性问题以及用label代替placeholder
  4. 电脑系统哪个最好用_什么除湿机好用_家用除湿机哪个牌子最好用-装修攻略
  5. 选择图像的“感兴趣区域”
  6. Excel基础操作(二)
  7. K-Means算法的10个有趣用例
  8. MySql 优化的 30 条建议
  9. 先写一点informix的
  10. docker compose mysql_docker-compose部署MySQL
  11. Android 实践项目开发二
  12. 莫烦python学习笔记之全局,局部变量
  13. windows7/windows10 虚拟显示器部署(Virtual monitor)
  14. 计算机专业网页设计周志,毕业设计周志范文100篇
  15. 卡巴斯基7.0反病毒一年激活码免费领取(官方活动,现已停止)
  16. 学习笔记HHL:Generalizing a Person Retrieval Model--Hetero-Homogeneous Learning UDA郑良2018
  17. 图像超分辨率重建原理学习
  18. 中国黑客窃取《地狱之门》源代码公开叫卖
  19. 华为软件精英挑战赛参赛感悟
  20. 信息技术领域会议(技术领域和非技术领域)

热门文章

  1. 【C++编程技巧】根据字符串中的指定字符作为分界将字符串拆分
  2. Python支持向量机(SVM)实例
  3. Machine Learning——Homework1
  4. html5自动显示日期脚本,HTML显示日期时间代码 - [js 特效代码]
  5. 数据结构与算法笔记-------选择排序
  6. Python基础语法-01-类及对象
  7. 重磅!阿里推出国产开源的 JDK!
  8. 蚂蚁员工人均都能买1套杭州的房子了?!好后悔,当初错失了蚂蚁...
  9. 性能测试指标:吞吐量,qps,并发量,响应时间
  10. nginx 代理springmvc到二级目录_详解Nginx从入门到实践