数据绑定以及Container.DataItem几种方式与使用方法分析
灵活的运用数据绑定操作
绑定到简单属性:<%#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几种方式与使用方法分析相关推荐
- 数据绑定以及Container.DataItem几种方式与用法分析 收藏
数据绑定以及Container.DataItem几种方式与用法分析 收藏 灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:& ...
- 数据绑定以及Container.DataItem绑定技巧
数据绑定以及Container.DataItem绑定技巧 灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:<asp ...
- Gps高程拟合matlab代码,几种GPS高程拟合方法分析与比较.doc
几种GPS高程拟合方法分析与比较 几种GPS高程拟合方法分析与比较 摘 要:文章论述了几种常用的GPS高程拟合的方法,并在MATLAB中编制了相应的程序,建立了相应的GPS高程拟合模型,并通过实例数据 ...
- Java中字符串拼接的几种方式(源码分析)
字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起. 我们都知道,String是Java中一个不可变的类,所以他一旦被实例化就无法被修改. 不可变类的实例一旦创建,其成员变 ...
- 前端百题——竟然有五种方式实现flat方法
1 背景 不知道老铁们有没有遇到过一道面试题:如何将一个多维数组展开成一个一维数组?当时我遇到的时候还不了解flat这个神奇的方法,用了最传统的解决方法进行解决. const flatten = ar ...
- 前端百题斩【020】——竟然有五种方式实现flat方法
写该系列文章的初衷是"让每位前端工程师掌握高频知识点,为工作助力".这是前端百题斩的第20斩,希望朋友们关注公众号"执鸢者",用知识武装自己的头脑. 20.1 ...
- table表头固定4种方法_4种细砂回收的方法分析
在整条制砂生产线合理又环保的配置方法中,配备脉冲除尘器和水洗洗砂机是流行趋势.经洗砂机清洗过的砂子表面洁净,有良好的质感,同时也能减少生产过程中的粉尘和噪音污染.但在洗砂过程中,细砂和面砂会随着水的流 ...
- Android获取当前位置的三种方式及其使用方法
1.GPS定位 2.基站定位 此类位置的获取有赖于手机无线通讯信号,当手机处在信号覆盖范围内,手机可以获得该区域(即通讯术语中的"小区")的识别号.因为这些识别号是惟一的,因此可以 ...
- JVM内存溢出的几种方式与解决方法
内存溢出 JVM运行时首先需要类加载器(classLoader)加载所需类的字节码文件.加载完毕交由执行引擎执行,在执行过程中需要一段空间来存储数据(类比CPU与主存).这段内存空间的分配和释放过程正 ...
- 小程序可通过这三种方式去做竞品分析
随着互联网+小程序的深入和技术的革新,互联网行业早已不是纯互联网产品的行业了,我们的竞争对手也不仅限于同行,因此竞品分析的视野也要放大到各行各业.那么竞品的分类有哪些?我们应该如何去选择? 1. 直接 ...
最新文章
- 北理工硕士被指抄袭投稿论文,校方通报:留校察看
- 前Citrix CTO认为虚拟化将解决现有的安全问题
- python中用来捕获异常的是_python – 在一行中捕获多个异常(块除外)
- VTK:绘制封顶球CappedSphere用法实战
- Java 实现基于 UDP 的简单 socket 通信
- 串口光猫设备结构及主要特点介绍
- 两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)
- 方法对头,报表模板维护其实很简单
- 洛谷P1880 石子合并(区间DP)(环形DP)
- YOLO V1论文理解
- Pazera Free MP4 To MP3 Converter 1.6 中文64位+32位便携版,免费的视频转换器
- DHCP中继配置(思科)
- 第08章 Tableau在线服务器
- 硬件级光线追踪:移动游戏图形的变革时刻
- 基于Bootstrap模板创建门户网站vue项目03
- python卡方检验计算pvalue值_Python数据科学:卡方检验
- 实践 ArcGIS Web 3D
- 2021年年总结:你无法让每个人都满意,甚至是大多数人。
- 炼丹工程师的自我修养
- 了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)
热门文章
- 【C++】将(数组)数据写入csv文件
- 从零基础入门Tensorflow2.0 ----九、44.4 签名函数转换成savedmodel
- 《剑指offer》面试题30——最小的k 个数
- 机器学习第五回——支持向量机SVM
- ArcGIS学习总结(16)——反距离权重法插值及批处理(IDW)
- php数据库密码查询,php数据库查询及密码匹配的功能
- Gson源码解析之InstanceCreator简单说明
- CXF +ws-security 和HttpURLConnection实现webservic请求
- FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,推流拉流
- 高考340分理科学计算机,2021年高考340分可以上什么大学 340分左右的院校