GridView模板之绑定到方法
模板的一个好处是它允许使用数据绑定表达式,这大大扩展了格式化和表现绑定数据的方式。
在很多场景中都用到的一个关键技术是,在页面类中加入一个专门的方法来处理字段值。这样就突破了简单的数据绑定的限制并允许你加入动态信息和条件逻辑。
例如,你希望创建一个在每行边上显示的一个图标的列,而且要根据行中的数据选择最合适的图片。下面显示一个示例,当某个项目的库存量大于50显示勾号,库存为0时候显示叉号
在很多场景中都用到的一个关键技术是,在页面类中加入一个专门的方法来处理字段值。这样就突破了简单的数据绑定的限制并允许你加入动态信息和条件逻辑。
例如,你希望创建一个在每行边上显示的一个图标的列,而且要根据行中的数据选择最合适的图片。下面显示一个示例,当某个项目的库存量大于50显示勾号,库存为0时候显示叉号
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<img src='<%# GetStatusPicture(Container.DataItem) %>' alt="status">
</ItemTemplate>
</asp:TemplateField>
这里是GetStatusPicture()方法,它检查数据项并选择适当的图片url<ItemTemplate>
<img src='<%# GetStatusPicture(Container.DataItem) %>' alt="status">
</ItemTemplate>
</asp:TemplateField>
protected string GetStatusPicture(object dataItem)
{
int units = Int32.Parse(DataBinder.Eval(dataItem, "UnitsInStock").ToString());
if (units == 0)
{
return "Cancel.gif";
}
else if (units > 50)
{
return "OK.gif";
}
else
{
return "blank.gif";
}
}
{
int units = Int32.Parse(DataBinder.Eval(dataItem, "UnitsInStock").ToString());
if (units == 0)
{
return "Cancel.gif";
}
else if (units > 50)
{
return "OK.gif";
}
else
{
return "blank.gif";
}
}