GridView控件,绑定数据是,如果某些字段需要特殊处理,怎么处理,例如:有些数据库中字段为数字,但是不能直接显示数字吧?得用使用者易于理解的中文或英文表示。如:
1 表示 "xxxx"
2 表示 "yyyy"
4 表示 "zzzz"3KS

解决方案 »

  1.   

    在RowDataBound事件里处理
    比如protected void gv_num_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Label lbl_one = e.Row.FindControl("one") as Label;
                Label lbl_two = e.Row.FindControl("two") as Label;            if (lbl_one.Text == "1")
                    lbl_one.Text = "xxxx";
                else if(lbl_one.Text=="2")
                    lbl_one.Text = "yyyy";            if (lbl_two.Text == "0")
                    lbl_two.Text = "zzzz";
                else if (lbl_two.Text == "1")
                    lbl_two.Text = "wwww";        }
        }
      

  2.   

    <%showname(Eval("thisnum").ToString()%>
    .cs
    public string showname(string num)
    {
      string returnstring;
      if(num=="1")
       returnstring="xxxx";
      if(num=="2")
       returnstring="yyyy";
      if(num=="4")
       returnstring="zzzz";
      return returnstring;
    }
      

  3.   

    thisnum是你的字段名称,这个写在aspx中,注意前面少了个#应该是
    <%#showname(Eval("thisnum").ToString()%> 
      

  4.   

     DataView CreateDataSoureBy() 
        { 
            System.Data.DataTable dt = new System.Data.DataTable(); 
            System.Data.DataRow dr; 
            dt.Columns.Add(new System.Data.DataColumn("列名1", typeof(System.String))); 
            dt.Columns.Add(new System.Data.DataColumn("列名2", typeof(System.String))); 
            dt.Columns.Add(new System.Data.DataColumn("列名3", typeof(System.String))); 
      
                  dr = dt.NewRow(); 
                    dr[0] = ;//想要显示的内容 
                    dr[1] = ; //想要显示的内容
                    dr[2] = ; //想要显示的内容
                    dt.Rows.Add(dr);         System.Data.DataView dv = new System.Data.DataView(dt); 
            return dv; 
        } 
      

  5.   


    <%#showname(Eval("thisnum").ToString()%> 置于何处?是DataFormatString吗?
      

  6.   

    <%#Eval("thisnum").ToString()=="1"?"XXXX":(Eval("thisnum").ToString()=="2"?"YYYY":"ZZZZ")%>
      

  7.   

    我用的是一楼办法,用的另外一种是在sql语句里写,case when,你查询一下
      

  8.   

    时间不紧的话,我建议看一下linq,这样sql就全在vs2008里搞定了
      

  9.   

    ??????一楼的方法 要把需要处理的列放置 Lable控件吧?
    二楼的方法 那个串字符放置在哪里?
      

  10.   

    一楼的方法要把那列设置成摸版列.用LABLE的.后台找这个控件的ID就可以了
      

  11.   

          <Columns>
                    <asp:TemplateField> 
     <ItemTemplate>
    <%#showname(Eval("thisnum").ToString()%> 
    </ItemTemplate>
                    </asp:TemplateField>
                </Columns>