zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

NetASP 深入 用法 理解 总结 eval
2023-06-13 09:15:00 时间

<%#Bind("Subject")%>//绑定字段
<%#Container.DataItemIndex+1%>//实现自动编号
<%#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()了
DataBinder.Eval用法范例
<%#DataBinder.Eval(Container.DataItem,"IntegerValue","{0:c}")%>
格式化字符串参数是可选的。如果忽略参数,DataBinder.Eval返回对象类型的值,

//显示二位小数
<%#DataBinder.Eval(Container.DataItem,"UnitPrice","${0:F2}")%>

//{0:G}代表显示True或False
<ItemTemplate>
<asp:ImageWidth="12"Height="12"Border="0"runat="server"
AlternateText="<%#DataBinder.Eval(Container.DataItem,"Discontinued","{0:G}")%>"
ImageUrl="<%#DataBinder.Eval(Container.DataItem,"Discontinued","~/images/{0:G}.gif")%>"/>
</ItemTemplate>

//转换类型
((string)DataBinder.Eval(Container,"DataItem.P_SHIP_TIME_SBM8")).Substring(4,4)
{0:d}日期只显示年月日
{0:yyyy-mm-dd}按格式显示年月日
{0:c}货币样式
<%#Container.DataItem("price","{0:¥#,##0.00}")%>
<%#DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>
SpecifierType     Format   Output(PassedDouble1.42)  Output(PassedInt-12400)
c  Currency        {0:c}     $1.42     -$12,400
d  Decimal         {0:d}    System.FormatException  -12400
e  Scientific      {0:e}    1.420000e+000    -1.240000e+004
f  Fixedpoint     {0:f}  1.42    -12400.00
g  General         {0:g}  1.42     -12400
n  Numberwithcommasforthousands  {0:n}  1.42     -12,400
r  Roundtrippable    {0:r}  1.42     System.FormatException
x  Hexadecimal    {0:x4}  System.FormatException   cf90

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

样式取决于Web.config中的设置
{0:c}  或{0:£0,000.00}货币样式  标准英国货币样式
<system.web>
<globalizationrequestEncoding="utf-8"responseEncoding="utf-8"culture="en-US"uiCulture="en-US"/>
</system.web>
显示为£3,000.10

{0:c}  或string.Format("{0:C}",price);中国货币样式
<system.web>
<globalizationrequestEncoding="utf-8"responseEncoding="utf-8"culture="zh-cn"uiCulture="zh-cn"/>
</system.web>
显示为¥3,000.10

{0:c}  或string.Format("{0:C}",price);美国货币样式
<system.web>
<globalizationrequestEncoding="utf-8"responseEncoding="utf-8"/>
</system.web>
显示为$3,000.10