Eval与DataBinder.Eval的区别

DataBinder.Eval的基本格式

DataBinder.Eval(Container.DataItem,"XXX","{0}")

<%# DataBinder.Eval(Container.DataItem,"xxxx")%>或者<%# DataBinder.Eval(Container,"DataItem.xxxx")%>

还有一种据说微软说效率很高的方式

<%# ((DataRowView)Container.DataItem)["xxxx"]%> 但是这种方式必须要在前台页面导入名称空间System.Data,否则会生成错误信息<%@ Import
namespace="System.Data" %>

DataBinder.Eval的基本格式

DataBinder.Eval(Container.DataItem,"XXX","{0}")

<%# DataBinder.Eval(Container.DataItem,"xxxx")%>

<%# DataBinder.Eval(Container,"DataItem.xxxx")%>

问题1、他们是有什么不同?

问题2、他们是否可以相互替换?

问题3、DataBinder.Eval(Container.DataItem,"")
这个Container和DataItem分别都是什么?

答1:Eval是对数据的只读绑定,被绑定的子控件所属的父控件(比如GridView)不能用此子控件接收用户输入的修改。Bind是双向绑定,所谓双向,是数据源---显示界面的双向数

据流动,即读/写。

答2:Eval可以替换为Bind,但会降低性能;反之不能替换。

答3:Container即容器,指父控件;DataItem指父控件所绑定的数据源的当前行,不是字段。

如果只是显示值<%#Eval("字段名")%>就可以了.

如果是要修改值<%#Bind("字段名")%>就可以了.

以下两种的显示是相同的

<%# Eval("name") %>

<%# DataBinder.Eval(Container.DataItem,"sex") %>

时间: 2024-08-12 14:27:33

Eval与DataBinder.Eval的区别的相关文章

一些数据格式化-Eval( &quot; &quot;)和DataBinder.Eval(Container.DataItem, &quot; &quot;)的区别及用法

ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname).Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数.缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来

Asp.net中DataBinder.Eval用法的总结

<%# Bind("Subject") %> //绑定字段<%# Container.DataItemIndex + 1%> //实现自动编号<%# DataBinder.Eval(Container.DataItem, "[n]") %>通常使用的方法(这三个性能最好)<%# DataBinder.Eval(Container.DataItem, "ColumnName") %><%# Da

eval与window.eval的差别

eval与window.eval的差别 它们之间有区别吗? 开发过程中似乎很少有人去加个额外的window,觉得多此一举.比如Ajax过程中回调函数解析JSON格式字符串 1 ... 2 function callback(str){ 3 var json = eval('(' + str + ')'); 4 } 5 ... 但由于各个引擎实现差异,它们的区别还是有的.通常直接使用eval,而非var json = window.eval('(' + str + ')');又比如调试时使用ale

this, eval(&#39;this&#39;), (0, eval)(&#39;this&#39;))

今天又被一段javascript代码神奇到了 function test() { console.log(this, eval('this'), (0, eval)('this')); }; var a = {}; test.apply(a); 在现代浏览器的console里跑上边的代码,结果应该类似是下边这样 Object {} Object {} Window {top: Window, window: Window, location: Location, external: Object

eval()和JSON.parse()的区别

我们将一个字符串解析成json对象时可以使用两种方法: 假设我们有一个json格式的字符串: '{ "student" : [ {"name":"鸣人","age":17}, {"name":"小樱","age":17}, {"name":"佐助","age":17} ] }' 然后我们需要把它解析成json

eval和new Function的区别

eval和new Function都可以动态解析和执行字符串.但是它们对解析内容的运行环境判定不同. var a = 'global scope' function b(){ var a = 'local scope' eval('console.log(a)') //local scope ;(new Function('','console.log(a)'))() //global scope } b() eval中的代码执行时的作用域为当前作用域.它可以访问到函数中的局部变量. new F

ASP之Eval、Execute、ExecuteGlobal区别分析

Eval.Execute.ExecuteGlobal 这三个语句(函数)都是执行字符串表达式,不过它们之间又有所不同. Eval 计算一个表达式的值并返回结果. 语法:[result = ]eval(expression) expression 为任意有效 VBScript 表达式的字符串 示例:response.Write(eval("3+2")) '输出 5 "3+2" 使用引号括起来,表示是一个字符串,但是在 Eval “眼里”,把它当作一个表达式 3+2 来

JSON.stringify()、eval(),JSON.parse()各自的区别于作用

JSON.stringify(value [, replacer] [, space]) value 必需. 要转换的 JavaScript 值(通常为对象或数组). replacer 可选. 用于转换结果的函数或数组. 如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值. 使用返回值而不是原始值. 如果此函数返回 undefined,则排除成员. 根对象的键是一个空字符串:"". 如果 replacer 是一个数组,则仅转换该数组中

python中使用eval() 和 ast.literal_eval()的区别

eval函数在python中做数据类型的转换还是很有用的.它的作用就是把数据还原成它本身或者是能够转化成的数据类型. 那么eval和ast.literal_val()的区别是什么呢? eval在做计算前并不知道需要转化的内容是不是合法的(安全的)python数据类型.只是在调用函数的时候去计算.如果被计算的内容不是合法的python类型就会抛出异常. ast.literal则会判断需要计算的内容计算后是不是合法的python类型,如果是则进行运算,否则就不进行运算. --------------