昨天在做一个案子,遇到GridView绑定列表的时候,后台字段用0和1表示的状态,显示的时候想显示为“未领取”,“已领取”。要进行格式转换。我们不可能让用户看到的是0和1,用户看到0和1也不明白是什么意思。开始研究了好久,java里面el表达式就很快搞定了。asp.net里面研究了下
先以 我的案例为示例。
数据字段:Status int 0和1标示 ,0:未领取;1:已领取
介绍2套解决方案:
1:使用三元运算符和前后台写代码进行转换:
1):后台CS代码:
/// <summary>
/// 格式化数据
/// </summary>
/// <param name="status"></param>
/// <returns></returns>
protected string FormatStatusData(string status)
{
string[] arrs = new string[] { "未领取", "已领取" };
return arrs[Convert.ToInt16(status)].ToString();
}
2):aspx 客户端代码:
首先编辑列,将status这一列设置为模板列,直接代码如下:
<asp:TemplateField HeaderText="状态">
<ItemTemplate>
<!--<%# FormatStatusData(Eval("Status").ToString())%>-->
<!-- 三元运算符,不需要前后台代码-->
<%# Eval("Status").ToString() == "0" ? "未领取" : "已领取"%>
</ItemTemplate>
</asp:TemplateField>