ASP.NET 中用 GridView 时,常常用到自定义模板(因为默认的实在不能满足我们的需求),而自定义时,往往少不了 Eval 来输出字段值。
但 Eval 的内容并不一定很令我们满意,我们可能要先将其格式化一下再输出。
<
asp:TemplateField HeaderText
=
"
价格
"
>
<
ItemStyle CssClass
=
"
price
"
/>
<
ItemTemplate
><%
# String.Format(
"
{0,5:0.00}
"
, Eval(
"
Price
"
))
%></
ItemTemplate
>
</
asp:TemplateField
>
如上,我们将 Price 字段的值经 String.Format 格式化后输出。顺便提一下 {0,5:0.00},它是如下意义:
- Price 保留两位小数输出(四舍五入),且小数不足两位时补零。
- Price 算上小数点,算上小数(两位)不足五位时,前面加空白,补足五位。
再看下日期的
<
ItemTemplate
><%
# Convert.ToDateTime(Eval(
"
ExpireDate
"
)).ToString(
"
yyyy-MM-dd
"
)
%></
ItemTemplate
>
再看下自定义方法的
前面都是使用系统内部的方法,自定义方法,需要先定义一个至少是 protected 的方法,比如:
protected
string
foo(
string
str)
{
return
str
+
"
:)
"
;
}
然后应用时,需要注意转换 Eval 字段的类型为 string。比如:
<
ItemTemplate
><%
# foo(Eval(
"
realName
"
).ToString())
%></
ItemTemplate
>