Eval,Bind,<% %>,<%# %>和<%= %> 笔记
1.<% %>用来绑定后台代码
如:
< %
for(int i=0;i<100;i++)
{
Reaponse.Write(i.ToString());
}
%>
2.<%# %> 是在绑定控件DataBind()方法执行时被执行,用于数据绑定
如: < %# Container.DataItem("title") %>
3.<%= %>用来绑定后台的变量或方法且有返回值 的,但此时的变量名或方法的访问修饰符为protected或public
如:<%=name%> <%=getstr()%>
4.eval和bind
eval和bind都是绑定datatable或者其他(集合,等)中的内容,那么他们有什么区别呢?
性能方面怎么样呢?eval有哪几种用法呢?
ASP.NET中的Eval和DataBinder.Eval方法
bind是双向绑定,但需数据源可更改才能用。
ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)
简化为Eval(fieldname)。
Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。
Eval语法与DataBinder.Eval的不同点在于,
Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,
而DataBinder.Eval需要使用参数来指定容器。
由于这个原因,Eval只能在数据绑定控件的模板中使用,而不能用于Page(页面)层。当然,ASP.NET 2.0页面中仍然支持DataBinder.Eval,你可以在不支持简化的Eval语法的环境中使用它。
用法<%# Bind("Name") %> //绑定字段
<%# Container.DataItemIndex + 1%> //实现自动编号
<%# Container.ItemIndex %> //Repeater自动编号
<%# DataBinder.Eval(Container.DataItem, "[n]") %>
通常使用的方法
<%# DataBinder.Eval(Container.DataItem, "ColumnName") %>
<%# DataBinder.Eval(Container.DataItem, "ColumnName", null) %>
<%# DataBinder.Eval(Container, "DataItem.ColumnName", null) %>
其他用法
<%# ((DataRowView)Container.DataItem)["ColumnName"] %>
<%# ((DataRowView)Container.DataItem).Row["ColumnName"] %>
<%# ((DataRowView)Container.DataItem)["adtitle"] %>
<%# ((DataRowView)Container.DataItem)[n] %>
<%# ((DbDataRecord)Container.DataItem)[0] %>
<%# (((自定义类型)Container.DataItem)).属性.ToString() %>//如果属性为字符串类型就不用ToString()了
Eval用法
DataBinder.Eval范例
<%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:c}") %>
格式化字符串参數是可选的。如果忽略参数,DataBinder.Eval 返回对象类型的值。
最新文章
- 在Navicat premium上创建的SQL Server数据库,实现用PHP连接(即php连接微软MSSQL)
- java.lang.UnsupportedClassVersionError: xxx/xxxClass : Unsupported major.minor version 51.0
- paper 63 :函数比较:imfilter与fspecial
- JavaScript中的加法运算
- C#利用Attribute实现简易AOP介绍 (转载)
- Linux下载jdk ,Linux如何下载jdk
- HDOJ(HDU) 2520 我是菜鸟,我怕谁(等差数列)
- 十天学Linux内核之第九天---向内核添加代码
- javascript-函数声明和函数表达式-call-apply
- Java经典编程题50道之二十
- NodeJs通过镜像下载相关NPM模块
- FatMouse and Cheese
- C#矩阵求逆
- TreeSet集合的自然排序与比较器排序、Comparable接口的compareTo()方法
- oracle之 安装oracle指定jdk 或者如何解决提示框显示不全
- 利用Delphi编程控制摄像头(图)
- 使用Dump转储文件排查线上环境服务未知问题
- idea tomcat启动乱码问题
- sql中COUNT(*)、COUNT(字段名)的区别
- 关于UIScrollView无限循环滑动
热门文章
- (寒假集训)Mooo Moo (完全背包)
- Closest Binary Search Tree Value -- LeetCode
- (转)Unity3d使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- How to copy projects into workspace of eclipse after importing the project?
- iOS教程:如何使用NSFetchedResultsController
- 15 个 Docker 技巧和提示
- Jenkins 安装卡住不动的解决方案
- 【Scala-ML】怎样利用Scala构建并行机器学习系统
- Android Activity之间经典切换动画
- Linux下xargs命令详解及xargs与管道的区别