格式化GridView 数字0和1转换为男女 及更复杂的处理 TC

很多情况下在绑定数据的时候,要进行格式转换。如果只有两种状态,比如说在数据库用0表示为男1表示为女,那在数据显示的时候,我们不可能让用户看到的是0和1,他们看到0和1也不明白是什么情况。所以,要进行格式转换。

先以 男女为示例。

使用三远运算符进行转换:

1 <asp:TemplateField HeaderText="性别">
2      <ItemTemplate>             
        <%# Eval("UserGender").ToString()=="0"?"男":"女" %>

3      </ItemTemplate>

4</asp:TemplateField>

 我们也可以在后台写代码进行处理:

前台:

1 <asp:TemplateField HeaderText="性别">
2      <ItemTemplate>
3         <%# FormatGenderData(Eval("UserGender").ToString())%>             
4      </ItemTemplate>
5 </asp:TemplateField>

后台:

1   protected string FormatGenderData(string sex)
2     {
3         string[] arrs = new string[] { """" };
4         return arrs[Convert.ToInt16(sex)].ToString();
5     }

请大家注意下,为什么使用 protected 来定义,如果使用private,HTML是访问不到这个方法的,因为private是私有的。也可以定义为public,在这就定义成protected。

还有大家可能会有疑问,为什么我们不使用if else或者switch case等语句来实现呢,虽然是可行的,但是大家有没有想到,那样写,使代码复杂化,我们可以变通下,把需要输出的字符串使用字符串数组顺序来存放,使用索引号来取相应的字符串,这样代码就非常简洁。 

 我们的方法接受的是字符串型参数,Eval()方法返回的是object类型。所以我们需要使用ToString()把数据转化为字符串型。

如果状态比较多的情况下,比如0 1 2 3 4 也可以使用此方法。

作者:Mr S.R Lee
出处:http://www.cnblogs.com/LeeYongze
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

原文地址:https://www.cnblogs.com/LeeYongze/p/1765148.html