DataBinder.Eval的用法

71 篇文章 0 订阅
<%# Bind("Subj ect") %><%# Container. DataItemIn dex +1%><%# DataBinder .Eval(Cont ainer.Data Item, "[n]") %>

通常使用的方法(这三个性能最好)
<%# DataBinder .Eval(Cont ainer.Data Item, "ColumnNam e") %>
<%# DataBinder .Eval(Cont ainer.Data Item, "ColumnNam e", null) %>
<%# DataBinder .Eval(Cont ainer, "DataItem. ColumnName ", null) %><%# ((DataRowV iew)Contai ner.DataIt em)["Colum nName"] %>
<%# ((DataRowV iew)Contai ner.DataIt em).Row["C olumnName" ] %>
<%# ((DataRowV iew)Contai ner.DataIt em)["adtit le"] %>
<%# ((DataRowV iew)Contai ner.DataIt em)[n] %>
<%# ((DbDataRe cord)Conta iner.DataI tem)[0] %>
<%# (((自定义类型)C ontainer.D ataItem)). 属性.ToStrin g() %>//如果属性为字 符串类型就不用ToS tring()了

DataBinder.Eval用法范例
<%# DataBinder .Eval(Cont ainer.Data Item, "IntegerVa lue", "{0:c}") %>
格式化字符串参数是可 选的如果忽略参数,D ataBinder. Eval 返回对象类型的值,

//显示二位小数
<%# DataBinder .Eval(Cont ainer.Data Item, "UnitPrice ", "${0:F2}") %><ItemTem plate>
<asp:Image Width="12" Height="12 " Border="0" runat="ser ver"
AlternateT ext='<%# DataBinder .Eval(Cont ainer.Data Item, "Discontin ued", "{0:G}") %><%# DataBinder .Eval(Cont ainer.Data Item, "Discontin ued", "~/images/ {0:G}.gif" ) %>' />
</ItemTemp late>
//转换类型
((string)D ataBinder. Eval(Conta iner, "DataItem. P_SHIP_TIM E_SBM8")). Substring( 4,4)
{0:d} 日期只显示年月日
{0:yyyy-mm -dd} 按格式显示年月日
{0:c} 货币样式
<%#Contain er.DataIte m("price", "{0:#,##0. 00}")%>
<%# DataBinder .Eval(Cont ainer.Data Item,"Comp any_Ureg_D ate","{0:y yyy-M-d}") %>


Specifier Type Format Output (Passed Double 1.42) Output (Passed Int -12400)
c Currency {0:c} $1.42 -$12,400
d Decimal {0:d} System.For matExcepti on -12400
e Scientific {0:e} 1.420000e+ 000 -1.240000e +004
f Fixed point {0:f} 1.42 -12400.00
g General {0:g} 1.42 -12400
n Number with commas for thousands {0:n} 1.42 -12,400
r Round trippable {0:r} 1.42 System.For matExcepti on
x Hexadecima l {0:x4} System.For matExcepti on cf90


{0:d} 日期只显示年月日
{0:yyyy-mm -dd} 按格式显示年月日


样式取决于 Web.config 中的设置

{0:c} 或 {0:0,000.0 0} 货币样式 标准英国货币样式
<system.we b>
<globaliza tion requestEnc oding="utf -8" responseEn coding="ut f-8" culture="e n-US" uiCulture= "en-US"/>
</system.w eb>
显示为 3,000.10

{0:c} 或 string.For mat("{0:C} ", price); 中国货币样式
<system.we b>
<globaliza tion requestEnc oding="utf -8" responseEn coding="ut f-8" culture="z h-cn" uiCulture= "zh-cn"/>
</system.w eb>
显示为 3,000.10

{0:c} 或 string.For mat("{0:C} ", price); 美国货币样式
<system.we b>
<globaliza tion requestEnc oding="utf -8" responseEn coding="ut f-8"/>
</system.w eb>
显示为 $3,000.10



DataBinder.Eval(Container.DataItem,"Name")和Container.DataItem("Name")有什么区别?
DataBinder 是System.We b里面的一个静态类, 它提供了Eval方法 用于简化数据绑定表达 式的编写,但是它使用 的方式是通过Refl ection等开销比 较大的方法来达到易用 性,因此其性能并不是 最好的而Contai ner则根本不是任何 一个静态的对象或方法 ,它是ASP.NET 页面编译器在数据绑定 事件处理程序内部声明 的局部变量,其类型是 可以进行数据绑定的控 件的数据容器类型(如 在Repeater内 部的数据绑定容器叫R epeaterIte m),在这些容器类中 基本都有DataIt em属性,因此你可以 写Container .DataItem, 这个属性返回的是你正 在被绑定的数据源中的 那个数据项如果你的数 据源是DataTab le,则这个数据项的 类型实际是DataR owView
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值