创建了一个 DataTable 对象,将查询结果填充进去,然后再将 DataTable 对象在GridView中展现出来,代码如下sqldap.SelectCommand = cmm;
DataTable dt = new DataTable();
sqldap.Fill(dt);GridView1.DataSource = dt;
GridView1.DataBind();但是最后展现的表格中的第6列全是部门代码,每个部门代码都代表一个部门汉字名称,我现在需要在最后的结果里显示出部门汉字名称,而不是这些符号代码,请问怎么才能做到?我看有些网站上说要通过GridView1_RowDataBound 里改,我自己照葫芦画瓢写了一个,但是运行之后还是没用
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {            if (e.Row.Cells[5].Text == "1233456")//123456 是部门代码
             {                e.Row.Cells[5].Text = "XXX";//xxx代表部门汉字名称
             }         }
     }有谁知道用什么最简单的办法可以把符号代码转换程部门汉字名称吗?谢谢!

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-07-16 08:28:39 编辑
      

  2.   

    定义一个对应的 Directory,直接根据Key值就可以显示了
      

  3.   

    在数据库中重新建一个字典表(Directory),键(Key)为部门代码,值(value)为部门名称,在绑定钱进行键值转换就行了。
      

  4.   


    谢谢,刚刚我改进了一下自己的代码,和第一个帖子里的代码应该是换汤不换药,但是为何还是无法实现呢?各位看出什么bug了吗?
     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                string text = e.Row.Cells[4].Text.ToString();//下标从0开始,要修改第5列
                if (text.Equals("123456"))//123456是部门代码
                {
                    text = "XXX";//xxx代表部门汉字名称
                   }            e.Row.Cells[4].Text = text;
            }
        }
      

  5.   

    还有一个问题,GridView1_RowDataBound函数是在何时被调用的?我是把它写在 protected void Button1_Click函数后面的,在protected void Button1_Click中最后的代码是:
    GridView1.DataSource = dt;
    GridView1.DataBind();会不会GridView1_RowDataBound函数还没来得及调用,GridView就显示出来了?所以GridView1_RowDataBound函数里的代码就没用了?
      

  6.   

    我刚刚想了一下,应该是我没有把GridView和任何数据源绑定(就是在“设计”里,“GridView任务”里,没有指定数据源),所以 if (e.Row.RowType == DataControlRowType.DataRow)条件部满足,就无法执行下面的代码,不知道我的理解对不对,各位有什么纠正吗?谢谢了。
      

  7.   

    GridView1_RowDataBound是在进行数据绑定的时候执行的,也就是执行GridView1.DataBind();的时候。
    如果没有起作用,是你的代码有问题
      

  8.   

    写查询语句的时候用连接查询,然后再绑定
    SELECT A.*,B.部门名称 from A LEFT JOIN B ON A.部门代码=B.部门代码
      

  9.   

    在数据库中重新建一个字典表(Directory),键(Key)为部门代码,值(value)为部门名称,在绑定钱进行键值转换就行了。