<%# 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(Cont ainer.Data Item,"Name ")和Contain er.DataIte m("Name")有 什么区别?
DataBinder 是System.We
b里面的一个静态类,
它提供了Eval方法
用于简化数据绑定表达
式的编写,但是它使用
的方式是通过Refl
ection等开销比
较大的方法来达到易用
性,因此其性能并不是
最好的而Contai
ner则根本不是任何
一个静态的对象或方法
,它是ASP.NET
页面编译器在数据绑定
事件处理程序内部声明
的局部变量,其类型是
可以进行数据绑定的控
件的数据容器类型(如
在Repeater内
部的数据绑定容器叫R
epeaterIte
m),在这些容器类中
基本都有DataIt
em属性,因此你可以
写Container
.DataItem,
这个属性返回的是你正
在被绑定的数据源中的
那个数据项如果你的数
据源是DataTab
le,则这个数据项的
类型实际是DataR
owView
通常使用的方法(这三
<%# DataBinder
<%# DataBinder
<%# DataBinder
<%# ((DataRowV
<%# ((DataRowV
<%# ((DataRowV
<%# ((DbDataRe
<%# (((自定义类型)C
DataBinder
<%# DataBinder
格式化字符串参数是可
//显示二位小数
<%# DataBinder
<asp:Image
AlternateT
</ItemTemp
//转换类型
((string)D
{0:d} 日期只显示年月日
{0:yyyy-mm
{0:c} 货币样式
<%#Contain
<%# DataBinder
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
e Scientific
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
x Hexadecima
{0:d} 日期只显示年月日
{0:yyyy-mm
样式取决于 Web.config
{0:c} 或 {0:0,000.0
<system.we
<globaliza
</system.w
显示为 3,000.10
{0:c} 或 string.For
<system.we
<globaliza
</system.w
显示为 3,000.10
{0:c} 或 string.For
<system.we
<globaliza
</system.w
显示为 $3,000.10
DataBinder
DataBinder