数据库里面存的是数字(0,1,2)分别表示(‘在职’,‘请假’,‘离职’),现在把查出来的数据赋值给gridView,现在有一个类里面的方法,我怎么调这个方法把0,1,2改成对应的文字?
public static string Show_Online(Object key) { int tem = 3; try { tem = Convert.ToInt32(key); } catch (Exception) { } string Re = ""; switch (tem) { case 0: Re = "请假"; break; case 1: Re = "在职"; break; case 2: Re = "离职"; break; default: Re = "暂无"; break; } return Re; }
string str = Class.Show_Online(0) //获取到"在职"
从数据库里查出来的数据da是要绑定给gridView啊。da里面是数字,怎么调上面的方法把数字改为文字在绑定给gridView
DataSet da = teacher_course_view.GetList(); GridView1.DataSource = da.Tables[0]; GridView1.DataBind();
@..00..:
有两种
一种在 aspx 页面处理 简单 <%# 代码 %>
另一种 aspx.cs页面处理 麻烦点
@Mundo Novo: 能具体点吗?
@..00..:
你用楼下的就可以
<%#Show_Online(Eval("key")) %>
<asp:GridView runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <span> <%#Show_Online(Eval("key")) %></span> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
@Mundo Novo: 哦,不能用直接编辑列里面的BoundField啊,必须用TemplateField吗?
@..00..: 我不经常用BoundField 虽然方便, 但是不灵活
例如在某个单元格里面
<td><%#Show_Online(Eval("key")) %></td>
key是你要绑定的数据(0,1,2,3)
<asp:BoundField DataField="Status" HeaderText="状态" ItemStyle-HorizontalAlign="Center" SortExpression="Status"> <ItemStyle HorizontalAlign="Center"></ItemStyle>
GridView1里面的列是这样的。。
@..00..:
for (int i = 0; i <= da.Tables[0].Rows.Count - 1; i++) { GridView1.Rows[i].Cells[0].Text = Show_Online(da.Tables[0].Rows[i].Columns[0]); }
//Cells[0]0是你要显示所在的列,da.Tables[0].Rows[i].Columns[0] 第1列(假如status在第一列)第N行数据。
顺便说一句,不推荐使用gridview 这种控件,局限性太大了,被绑得死死的,单纯做为显示数据还行。
@|WinKi|: 这个确实只是显示数据的,BoundField绑着是有点麻烦,我还是用TemplateField这个绑着方便些,谢谢啊!
@..00..:
改用repeater吧,先怎样显示就怎么显示,完全根据自己的css设计来做。
使用TemplateField的话 <%#Show_Online(Eval("key")) %>这样就可以了、
@|WinKi|: 恩,谢谢!