<asp:TemplateField HeaderText&#61;"姓名">
<ItemTemplate> <%# Eval("FirstName") %>
<%# Eval("LastName") %>
ItemTemplate>
<asp:TemplateField>
或
<%# DataBinder.Eval(Container.DataItem,"数据库字段")%>
<%# 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()了
说明&#xff1a;FirstName ,LastName皆为数据库字段。这里直接绑定没有对结果做任何格式处理和运算。同时你也可以看到&#xff0c;可以直接在模板里布置多个绑定。
方法二&#xff1a;对运算结果进行运算
<%# DataBinder.Eval(Container.DataItem, "Discount").ToString() &#61;&#61; "0" ? "不打" : DataBinder.Eval(Container.DataItem, "Discount").ToString()%>折
说明&#xff1a;运用三元运算符&#xff0c;对结果进行判断。这种方法适合那些非True即False的情况。
方法三&#xff1a;对结果进行格式化处理
<%# DataBinder.Eval(Container.DataItem, "Discount_beginDate", "{0:yyyy-m-d}").ToString() &#61;&#61; "1900-0-1" ? "无" : DataBinder.Eval(Container.DataItem, "Discount_beginDate", "{0:yyyy-m-d}").ToString()%>
说明&#xff1a;可以看到这里查询日期进行了格式化&#xff0c;然后进行了运算。
方法四&#xff1a;绑定后台方法
<%# GetStatusPicture(Container.DataItem) %>
后台方法&#xff1a;
protected string GetStatusPicture(object dataItem)
{
int units &#61; Int32.Parse(DataBinder.Eval(dataItem, "PopularLevel").ToString());
string strNum &#61; "";
switch (units)
{
case 0:
strNum &#61; "0 颗星";
break;
case 1:
strNum &#61; "1 颗星";
break;
case 2:
strNum &#61; "2 颗星";
break;
case 3:
strNum &#61; "3 颗星";
break;
case 4:
strNum &#61; "4 颗星";
break;
case 5:
strNum &#61; "5 颗星";
break;
}
return strNum;
}
说明&#xff1a;后台方法必须为Public或Proteced&#xff0c;接受的参数最好为Object类型&#xff0c;然后再方法内进行转换。
来自: http://hi.baidu.com/sygwin/blog/item/aa9f5d0fe6178a276159f3ab.html