(转)ASP.NET-关于Container dataitem 与 eval方法介绍
Container是一个数据容器,代表集合类或者dataview中的一行,而Container。dataitem代表该行的数据;所有的container 被存
放在是一个栈堆stack中,自动的将每一个container压入栈堆内,最后一行记录先进栈,最后是第一行;(或者说栈顶是集合类的第
一个container)
GridView的每一行都是一个类型为GridViewRow的Container(容器)对象。GridViewRow有一个属性叫DataItem,它是GridViewRow对象
绑定到的基础数据对象,一般来说它就是绑定到GridView的关系数据库数据源的一行(DataRow)。
在上面的例子中,因为GridViewRow(即GridView的一行)通过原先的数据绑定已经绑定到了一个ItemInformation对象,所以
Container.DataItem可以转换为temInformation。
总之,Container是GridView的一行,而Container.DataItem是这一行所绑定的数据。
每个DataItem代表集合类内的一个对象,或者dataview内的一行记录(datarowview);
此外Eval(object,string)方法,是通过反射机制在object内寻找string的,所以对于性能有些许损耗。
Eval(container。dataitem,“name”):表示在当前的dataitem对象内寻找 name的值
在使用Repeater的时候,会使用Container.DataItem.其实DataItem就是一个Object,这个Object就是Repeater的DataSource中的一个
元素。
如果 DataSourc是DataTable 那么这个DataItem就是DataRow
如果DataSource是List<Article> 那么这个DataItem就是Article。这里Article是一个自定义的类。可以先做类型转换 然后调用
Article的方法。比用DataBinder.Eval效率高一些,因为DataBinder.Eval需要使用反射。
使用数据绑定的范例:
绑定到简单属性:<%#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).字段名%>
转自:http://2334495.blog.hexun.com/58444731_d.html
转载于:https://www.cnblogs.com/mvv118/p/3851457.html
(转)ASP.NET-关于Container dataitem 与 eval方法介绍相关推荐
- 一些数据格式化-Eval( )和DataBinder.Eval(Container.DataItem, )的区别及用法
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldn ...
- DataBinder.Eval(Container.DataItem
1.DataBinder.Eval用法 //显示二位小数 <%# DataBinder.Eval(Container.DataItem, "UnitPrice", " ...
- 数据绑定以及Container.DataItem绑定技巧
数据绑定以及Container.DataItem绑定技巧 灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:<asp ...
- 揭秘ASP.NET 2.0的Eval方法(转)
实际上Eval方法是TemplateControl的,而System.Web.UI.Page和System.Web.UI.UserControl都继承于TemplateControl,所以我们可以在P ...
- 数据绑定以及Container.DataItem几种方式与用法分析 收藏
数据绑定以及Container.DataItem几种方式与用法分析 收藏 灵活的运用数据绑定操作 绑定到简单属性:<%#UserName%> 绑定到集合:& ...
- 揭秘ASP.NET 2.0的Eval方法
揭秘ASP.NET 2.0的Eval方法 iTbulo.COM 2006-4-3 赛迪博客[ 385] [我要投稿] 实际上Eval方法是TemplateControl的,而System.Web.UI ...
- asp.net TemplateField模板中的Bind方法和Eval方法
TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现.以下是Bind方法的格式,Eval的格式也是和Bind一样的. Bind("列 ...
- databinder.eval绑定数据的时候显示html标签,c#教程之基于DataBinder.Eval方法的数据绑定...
https://www.xin3721.com/eschool/ 10.2.5基于DataBinder.Eval方法的数据绑定 为将绑定的数据按指定数据类型转化为字符串,可以使用String.Form ...
- DataBinder.Eval方法研究
DataBinder.Eval方法: 用途:在运行时使用反射来分析和计算对象的数据绑定表达式 重载列表如下: public static object Eval(object container,st ...
最新文章
- 手机打开python文件_使用python在计算机和手机之间通过wifi进行简单的文件传输...
- WSL1 升级为 WSL2
- sizeof()与_countof()用法
- pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)
- 工作所思--IT新人
- psp3000 刷机
- ANSYS网格划分简述
- 使用videojs播放rtmp视频
- java支付宝提现功能,单笔转账到支付宝账户
- 基础 | 并发编程 - [LongAdder Striped64]
- 小程序—这款工具把加速计、陀螺仪、设备方向的调试痛点解决了
- 树莓派蓝牙连接就断开
- 用python计算圆柱体的体积和表面积_Java圆柱体表面积和体积计算代码实例
- LeetCode——6. Z 字形变换
- 债券价格和到期收益率的关系_债券价格、到期收益率与票面利率之间的关系是什么?...
- Unity全局音量控制以及音量信息存储在本地
- GitHub Copilot 正在“摧毁”初级开发者,已沦为编程考试作弊的神器?
- stm32通过wifi模块实现手机远程控制灯与舵机
- Spring2.5+Struts2+Hibernate3整合之五
- H5调用iOS和安卓方法
热门文章
- kibana操作elasticsearch:多字段查询(multi_match)
- MySQL使用覆盖索引来优化limit语句
- matlabpython建模_一直在用Matlab建模,现在Python很火,用学么?
- centos7.8源码编译安装nginx1.17.10
- Android基础——四大组件之Activity
- 基于Vue和axios的音乐播放器——悦听音乐效果展示及代码分享
- 常用的数据交换格式有哪些_大数据架构之数据交换平台
- python爬虫科研数据提取_python爬虫数据提取四之pyquery
- Object与equals
- python中sys模块有什么用_Python sys模块用法详解