首页 新闻 会员 周边 捐助

asp如何将调用数据库中的数字转成相应汉字?

0
悬赏园豆:10 [已解决问题] 解决于 2013-09-13 16:14

数据库里面存的是数字(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;
       }
..00..的主页 ..00.. | 初学一级 | 园豆:49
提问于:2013-09-13 15:12
< >
分享
最佳答案
0

 

string str = Class.Show_Online(0) //获取到"在职"

收获园豆:5
Mundo Novo | 初学一级 |园豆:69 | 2013-09-13 15:17

从数据库里查出来的数据da是要绑定给gridView啊。da里面是数字,怎么调上面的方法把数字改为文字在绑定给gridView

DataSet da = teacher_course_view.GetList();
 GridView1.DataSource = da.Tables[0];          
            GridView1.DataBind();
..00.. | 园豆:49 (初学一级) | 2013-09-13 15:23

@..00..: 

有两种

一种在 aspx 页面处理  简单           <%# 代码 %>

另一种 aspx.cs页面处理 麻烦点

Mundo Novo | 园豆:69 (初学一级) | 2013-09-13 15:34

@Mundo Novo: 能具体点吗?

..00.. | 园豆:49 (初学一级) | 2013-09-13 15:47

@..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 | 园豆:69 (初学一级) | 2013-09-13 15:57

@Mundo Novo: 哦,不能用直接编辑列里面的BoundField啊,必须用TemplateField吗?

..00.. | 园豆:49 (初学一级) | 2013-09-13 16:02

@..00..: 我不经常用BoundField 虽然方便, 但是不灵活

Mundo Novo | 园豆:69 (初学一级) | 2013-09-14 11:53
其他回答(1)
0

例如在某个单元格里面

<td><%#Show_Online(Eval("key")) %></td>

key是你要绑定的数据(0,1,2,3)

收获园豆:5
|WinKi| | 园豆:669 (小虾三级) | 2013-09-13 15:32
 <asp:BoundField DataField="Status" HeaderText="状态" 
                ItemStyle-HorizontalAlign="Center" SortExpression="Status">
<ItemStyle HorizontalAlign="Center"></ItemStyle>

GridView1里面的列是这样的。。
支持(0) 反对(0) ..00.. | 园豆:49 (初学一级) | 2013-09-13 15:46

@..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 这种控件,局限性太大了,被绑得死死的,单纯做为显示数据还行。
支持(0) 反对(0) |WinKi| | 园豆:669 (小虾三级) | 2013-09-13 16:11

@|WinKi|: 这个确实只是显示数据的,BoundField绑着是有点麻烦,我还是用TemplateField这个绑着方便些,谢谢啊!

支持(0) 反对(0) ..00.. | 园豆:49 (初学一级) | 2013-09-13 16:14

@..00..: 

改用repeater吧,先怎样显示就怎么显示,完全根据自己的css设计来做。

使用TemplateField的话 <%#Show_Online(Eval("key")) %>这样就可以了、

支持(0) 反对(0) |WinKi| | 园豆:669 (小虾三级) | 2013-09-13 16:20

@|WinKi|: 恩,谢谢!

支持(0) 反对(0) ..00.. | 园豆:49 (初学一级) | 2013-09-13 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册