标题描述的很抽象,但做过的同学肯定一看就懂。在设计数据库时,男女、有无这类的字段经常不被设为具体的字符串“男”“女”“有”“无”,而是设为01数字或者true和false。但是在用gridview或者 detailView 这类控件绑定数据时就有问题了,总不能也显示0, 1, true, false吧。以下是我自己想的几种解决方法:
1 、三层开发在model层中合理设置get和set,这样做的好处是控件绑定数据后不用处理直接显示就是了,坏处是,当需要01值(比如设置checkbox显示)时还需要再次转换为01
2、用控件的dataBound事件,在表格(gridView和detailView显示时实际上就是表)显示时把要显示的数据转换掉。
- gridView代码示例:
- if(e.Row.Cells[列的索引].Text=="0")
- {
- e.Row.Cells[列的索引].Text="男";
- }
- else
- {
- e.Row.Cells[列的索引].Text="女";
- }
- detailView代码示例:
- if (this.DetailsView1.Rows[行的索引].Cells[1].Text == "1")
- {
- this.DetailsView1.Rows[行的索引].Cells[1].Text = "有";
- }
- else
- {
- this.DetailsView1.Rows[行的索引].Cells[1].Text = "无";
- }
3、把目标列/字段转换为TemplaField,这时候目标列/字段所在的地方就变成label了,之后编辑模板,编辑dataBindings,Text属性默认绑定的应该是Eval("字段名"),把这里用一个三元运算符,写成类似:Eval("字段名")=="1"?"有":"无",就OK了。