ASP.NET-关于Container dataitem 与 eval方法介绍
来源:互联网 发布:matlab bp算法 编辑:程序博客网 时间:2024/06/08 03:09
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
- ASP.NET-关于Container dataitem 与 eval方法介绍
- asp.net后台绑定与前台显示,如:eval,bind,container.dataitem 的使用
- 关于 Eval("")和DataBinder.Eval(Container.DataItem, "")
- 关于ASP中用Repeater数据填充,<%#Eval() %>和<%#Container.DataItem()%>等方法的区别
- DataBinder.Eval(Container.DataItem
- 绑定 DataBinder.Eval(Container.DataItem,"字段")与 Eval("字段") 区别?
- 与'>以及DataBinder.Eval(Container, DataItem,"id")的区别
- Eval( " ")和DataBinder.Eval(Container.DataItem, " ")区别
- Eval( " ")和DataBinder.Eval(Container.DataItem, " ")区别
- DataBinder.Eval(Container, "Text") vs DataBinder.Eval(Container.DataItem, "Text")
- DataBinder.Eval(Container.DataItem,"xxxx")的使用
- DataBinder.Eval(Container.DataItem判断值
- DataBinder.Eval和Container.DataItem的区别
- ASP.NET中的Eval与DataBinder.Eval()方法
- Eval( " ")和DataBinder.Eval( Container.DataItem,"FileName")的区别
- Eval( " ")和DataBinder.Eval(Container.DataItem, " ")的区别及用法
- C# aspx 数据绑定 Bind、Eval 、DataBinder.eval、Container.DataItem
- C# aspx 数据绑定 Bind、Eval 、DataBinder.eval、Container.DataItem
- ORACLE 日期加减操作
- 安装系统
- Python之美[从菜鸟到高手]--读"一道面试题看 HashMap 的存储方式"的联想
- connect by
- 视频格式D1
- ASP.NET-关于Container dataitem 与 eval方法介绍
- 安装虚拟机报错解决办法 TheVMware Authorization Service is not running
- 关于热血传奇actor绘制的分析与思考
- linux yum命令详解
- 五彩趣味运动会的起源与发展
- Struts2+Hibernate+Spring整合
- 无dll注入游戏拦截函数截取封包
- HashSet和TreeSet的相关总结和整理
- 项目启动时报错:Unsupported major.minor version 51.0