`
wsql
  • 浏览: 11750679 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

DataBinder.Eval和Container.DataItem有什么区别

 
阅读更多
DataGrid控件,在ItemTemplate显示数据时,
DataBinder.eval_r(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?

DataBinder是System.Web里面的一个静态类,它提供了Eval方法用于简化数据绑定表达式的编写,但是它使用的方式是通过Reflection等开销比较大的方法来达到易用性,因此其性能并不是最好的。

Container则根本不是任何一个静态的对象或方法,它是ASP.NET页面编译器在数据绑定事件处理程序内部声明的局部变量,其类型是可以进行数据绑定的控件的数据容器类型(如在Repeater内部的数据绑定容器叫RepeaterItem),在这些容器类中基本都有DataItem属性.
因此你可以写Container.DataItem,这个属性返回的是你正在被绑定的数据源中的那个数据项。如果你的数据源是DataTable,则这个数据项的类型实际是DataRowView.效率高!


DataBinder通常使用的方法
<%# DataBinder.eval_r(Container.DataItem, "ColumnName") %>
<%# DataBinder.eval_r(Container.DataItem, "ColumnName", null) %>
<%# DataBinder.eval_r(Container, "DataItem.ColumnName", null) %>


Container通常使用的方法
<%# ((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()了
分享到:
评论

相关推荐

    DataBinder.Eval总结

    在绑定数据时经常会用到这个句程序:&lt;%# DataBinder.Eval(Container.DataItem,"xxxx")%&gt;或者&lt;%# DataBinder.Eval(Container,"DataItem.xxxx")%&gt; 今天又学到一种,而且微软也说这种方法的效率要比以上两种高。 (...

    深入理解Asp.net中DataBinder.Eval的用法总结

    &lt;&#37;# Bind(“Subject”) %&gt; //绑定字段&lt;&#37;# Container.DataItemIndex + 1%&gt; //实现自动编号&lt;&#37;# DataBinder.Eval&#40;Container.DataItem, “[n]”...# DataBinder.Eval(Container, “DataItem.Colum

    设计一个简单的网页

    d&gt; 可能感兴趣的人:"&gt; ... &lt;%# DataBinder.Eval(Container.DataItem, "Name")%&gt; &lt;%# DataBinder.Eval(Container.DataItem, "Sex")%&gt; &lt;%# DataBinder.Eval(Container.DataItem, "myEmail")%&gt; &lt;/td&gt;

    AspNetPager1

    &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem,"Activation")%&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "DealerId")%&gt; &lt;td&gt;&lt;%#DataBinder.Eval(Container.DataItem, "UserId")%&gt; &lt;td&gt;&lt;%#DataBinder.Eval...

    ASP.NET完全入门

    ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短...

    ASP.NET Eval 求值运算的一些用法

    &lt;&#37;# Bind(“Subject”) %&gt; //绑定字段 &lt;&#37;# Container.DataItemIndex + 1%&gt; //实现自动编号 &lt;&#37;# DataBinder.Eval&#40;Container.DataItem, “[n]”&#41...# DataBinder.Eval(Container, “DataItem

    C# 列表的下拉框联动.pdf

    Container, "DataItem.PLANTKEY"&#41; %&gt;'&gt; 宋体"&gt; &lt;asp:ListItem Selected="True" Value=""&gt;---- &lt;asp:DropDownList ID="ddl_e_week_p" ToolTip='&lt;%# DataBinder.Eval&#40;Container, "DataItem.PLANTKey"&#...

    C#自定义分页控件

    &lt;td&gt;&lt;%# DataBinder.Eval(Container.DataItem,"unitsinstock")%&gt; ; LEFT: 256px; POSITION: absolute; TOP: 40px" runat="server" Width="500px" FirstPageText="首页" LastPageText="尾页" NextPageText=...

    DataList绑定到Row[]行集合的问题的方法

    Container.DataItem,”fldName”&#41; %&gt;时,编译时将会出现 “DataBinder.Eval:“System.Data.DataRow”不包含名称为 fldName 的属性” 的错误 解决办法:将 &lt;&#37;# DataBinder.Eval&#40;Container....

    webfrom:BoundField.pdf

    GridView 只需要展示则BoundField ItemTemplate则可以在行里面展示任何控件 &lt;asp:BoundField DataField="mainclass_code" HeaderText="大类...Container.DataItem, "subclass_name"&#41; %&gt;' /&gt; &lt;/asp:TemplateField&gt;

    C#(ASP.NET)DateTime日期类型格式化显示

    DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}") 7.显示时间所有部分,包括:年月日时分秒 &lt;asp:BoundColumn DataField="收款时间" HeaderText="收款时间" DataFormatString="{0:yyyy-MM-dd HH24:mm...

    ASP.NET程序中常用的三十三种代码.txt

     &lt; %# DataBinder.Eval(Container.DataItem, "数据字段1")%&gt;’ & name=’&lt;% # DataBinder.Eval(Container.DataItem, "数据字段2")%&gt;’ /&gt;  7.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item ||e....

    webfrom-列表文本内容自动换行 word-break-keep-all;word-wrap-n.pdf

    &lt;HeaderStyle HorizontalAlign=...Container, "DataItem.op_create_user"&#41; %&gt;'&gt; &lt;/asp:Label&gt;&lt;/div&gt; &lt;/ItemTemplate&gt; myDataGrid_d.Attributes.Add("style", "word-break:keep-all;word-wrap:normal");

    。NET经典技术

    Container.DataItem,"begtime"&#41;.ToString()).ToShortDateString()%&gt;  6.标题带链接 &lt;%# "&lt;a class="12c" target="_blank" href="http://www.webjx.com/CV/_"&gt;"+ DataBinder.Eval&#40;Container.DataItem,...

    webfrom-切换单选框和复选框.pdf

    private void Datagrid1_ItemCreated(object sender, ...Container.DataItem, "line_id"&#41; %&gt;' name="RadioName"&gt; 选择"&gt; &lt;asp:CheckBox ID="id" runat="server"&gt;&lt;/asp:CheckBox&gt; &lt;/asp:TemplateColumn&gt;

    webfrom-前台加载后台方法 --# --.pdf

    Container, "DataItem.ISHKPOD"&#41;) %&gt;' /&gt; /// /// 文件回形针 /// /// &lt;param name="value"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; public bool IsPod(object value) { if (Convert.ToString(value) =...

    ASP.NET常用代码

    id='&lt;%# DataBinder.Eval(Container.DataItem, "数据字段1")%&gt;' & name='&lt;%# DataBinder.Eval(Container.DataItem, "数据字段2")%&gt;' /&gt; 7.表格点击改变颜色 if (e.Item.ItemType == ListItemType.Item ||e.Item....

    Asp.net中时间格式化的6种方法详细总结

    1. 数据控件绑定时格式化日期方法: 代码如下: &lt;asp DataField=”AddTime” HeaderText=”添加时间” DataFormatString=”{0:yyyy-... 用DataBinder.Eval进行数据绑定时: 代码如下: DataBinder.Eval(Container.DataItem

    asp.net 点缩略图弹出随图片大小自动调整的页面

    而且要有图片的说明信息,还可以点上一幅和下一幅等进行翻页。 实现过程如下: pic_small.Aspx页面缩略图处的代码为: 代码如下:...Container.DataItem,”PicUrl”&#41;%&gt;’width=”118″runat=”server”&gt; ShowWindow

Global site tag (gtag.js) - Google Analytics