要让gridview上的某字段(列)上显示优、良、差:
①、当指定字段的值大于等于85时显示“优”②、当指定字段的值大于等于75而小于85时为“良”③、当指定字段的值小于75时为“差”

解决方案 »

  1.   

    参考这个:
    <asp:TemplateField> 
    <ItemTemplate> 
    <%# Eval("数据").ToString().Equals("0") ? "男" : "女"%> 
    </ItemTemplate> 
    </asp:TemplateField> 
      

  2.   

    在sql语句中先查出来,保存到dataset(datatable)中
    在dataset中修改即可
    例如
                    try
                    {
                        string str = "SELECT * FROM 表 where ...";
                        OracleDataAdapter da = new OracleDataAdapter(str, oracleconn);
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        DataTable dt = ds.Tables[0];                }
                    catch (OracleException ee)
                    {
                        MessageBox.Show(ee.Message.ToString());
                    }
    上边的程序将要查询的结果读到了dt中
                      foreach(DataRow dr in dt.Rows)
                    {
                        if(dr[/*列索引,你要判断的列的索引*/] >= 85)
                        {
                           dr[/*同一个索引*/] = "优";
                        }
                        else if(dr[/*列索引,你要判断的列的索引*/] >= 75 && dr[/*列索引,你要判断的列的索引*/] < 85)
                        {
                           dr[/*同一个索引*/] = "良";
                        }
                        else
                        {
                           dr[/*同一个索引*/] = "差";
                        }
                    }
    上边的程序将数字换成了字符,
    最后
                      this.datagridview1.DataSource = dt
      

  3.   

    在GridView的DataRowBound事件中进行设置:
    若指定字段为非模板列:
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                int score = Convert.ToInt16(((Label)e.Row.Cells[列号]).Text);
                if (score >= 85)
                    ((Label)e.Row.Cells[列号]).Text = "优";
                else if(score<85 & score>=75)
                    ((Label)e.Row.Cells[列号]).Text = "良";
                else
                    ((Label)e.Row.Cells[列号]).Text = "差";
             }
          }若指定字段为模板列:
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                int score = Convert.ToInt16(((Label)e.Row.Cells[列号].FindControl("控件ID")).Text);
                if (score >= 85)
                    ((Label)e.Row.Cells[列号].FindControl("控件ID")).Text = "优";
                else if(score<85 & score>=75)
                    ((Label)e.Row.Cells[列号].FindControl("控件ID")).Text = "良";
                else
                    ((Label)e.Row.Cells[列号].FindControl("控件ID")).Text = "差";
             }
          }
      

  4.   

    是gredview啊。。  看错了,不过前边的是一样的 后边的绑定 你自己改一下就可以了
      

  5.   

    在DataTable和GridView绑定的时候判断
      

  6.   

    谢谢大家!我再描述清楚,有这样一个表:
    姓名    语文
    甲      95
    乙      45
    丙      86
    丁      77
    在gridview上得到以下结果:
    总人数     优的人数     良的人数    差的人数4          2            1           1
      

  7.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                int score = Convert.ToInt16(((Label)e.Row.Cells[列号]).Text); 
               
             select (scroe)
                  case :"score>=85"
                   ((label)e.row.cells[列号].text='优';
                   break;
                  case:"score>=75&score<85"
                    ((label)e.row.cells[列号].text="良";
                   break;
                  case:"score<75"
                    ((label)e.row.cells[列号].text="差";
                   break;  
             } 
          } 
      

  8.   

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                int score = Convert.ToInt16(((Label)e.Row.Cells[列号]).Text); 
               
             select (scroe)
                  case :"score>=85"
                   ((label)e.row.cells[列号].text="优";
                   break;
                  case:"score>=75&score<85"
                    ((label)e.row.cells[列号].text="良";
                   break;
                  case:"score<75"
                    ((label)e.row.cells[列号].text="差";
                   break;  
             } 
          } 
      

  9.   

    不好意思写错了:
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
        { 
            if (e.Row.RowType == DataControlRowType.DataRow) 
            { 
                int score = Convert.ToInt16(((Label)e.Row.Cells[列号]).Text); 
               
           switch (scroe)
                  case :"score>=85"
                   ((label)e.row.cells[列号].text="优";
                   break;
                  case:"score>=75&score<85"
                    ((label)e.row.cells[列号].text="良";
                   break;
                  case:"score<75"
                    ((label)e.row.cells[列号].text="差";
                   break;  
             } 
          } 
      

  10.   

    修改一下:select 应该是:switch
      

  11.   

    我有多列,请问这句是什么意思(Label、列号)?Convert.ToInt16(((Label)e.Row.Cells[列号]).Text);
      

  12.   

    在模板列
    <%# int.Parse(Eval("").ToString())>=85?"优":int.Parse(Eval("").ToString())>=75?"良":"差"%>
      

  13.   

    谢谢大家!我再描述清楚,有这样一个表: 
    姓名    语文 
    甲      95 
    乙      45 
    丙      86 
    丁      77 
    在gridview上得到以下结果: 
    总人数    优的人数    良的人数    差的人数 4          2            1          1 
      

  14.   

    急呀!谢谢大家!我再描述清楚,有这样一个表: 
    姓名    语文 
    甲      95 
    乙      45 
    丙      86 
    丁      77 
    在gridview上得到以下结果: 
    总人数    优的人数    良的人数    差的人数 4        2          1         1 
      

  15.   

    急呀!谢谢大家!我再描述清楚,有这样一个表: 
    姓名    语文 
    甲      95 
    乙      45 
    丙      86 
    丁      77 
    在gridview上得到以下结果: 
    总人数    优的人数    良的人数    差的人数 4          2           1         1