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

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

先以 男女为示例。

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

1 2 <%# Eval("UserGender").ToString()=="0"?"男":"女" %> 3 4 

 

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

前台:

1 2 3 <%# FormatGenderData(Eval("UserGender").ToString())%> 4 5  

 

后台:

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 也可以使用此方法。

你可能感兴趣的:(string,asp,object,数据库,html)