50分,简单的DATAGRID绑定问题。

 所属目录:Java   |   类型:技术问答   |   时间:2007-05-21
 问题:

将一个datasource的table绑定到一个datagrid上,某列的值需要变化,如:  
   
                                  序号   值   级别   比率                         序号     值     级别   比率  
                                  1       100   a                                           1       100     优秀   100/400      
                                  2       90     a                                           2         90     优秀   90/400  
                                  3       70     b                                             3       70     良好   260/400    
  table中的数据       4       60     b           ————》显示为   4       60     及格   320/400    
                                  5       50     c                                             5       50       差     370/400  
                                  6       30     c                                             6       30       差       1  
                              total   400                                             total   400    
   
  存在的问题:sql语句不能变化,查询的结果如图一,不做处理时显示如上图一,现在需要在datagrid中显示如图二的样子,即判断级别,显示对应的值,如a——》优秀,求出比率的值,至于求比率的方法可以解决,就是俺不知道在那里填入比率的值,显示级别的值,绑定的时候可以改变的吗?现在没有编译环境,请大家在自己的机子上一试,最好有原代码。

· 网友精彩回答:

发表者:laodai_net

在   aspx.cs   中写个小函数  
   
  public   static   string   getscore(int   intscore)  
  {  
  if(intscore   ==   60)  
  return   "及格";  
  return   intscore.tostring();  
  }  
   
  绑定的时候     <%#   getscore(int32.parse(databinder.eval(container.dataitem,"分数字段名").tostring()))   %>

发表者:laodai_net

public   static   string   getscore(int   intscore)  
  {  
  if(intscore   >   80   )  
  return   "优秀";  
  else   if(intscore   >   60)  
  return   "良好";  
  else   if(intscore   ==   60)  
  return   "及格";  
  else   if(intscore   <60)  
                                  return   "差";  
  }

发表者:laodai_net

我晕   写了个简单页面   你拷回去放到   web目录就可以运行了  
   
   
  <%@   page   language="c#"   contenttype="text/html"   responseencoding="gb2312"   %>  
  <%@   import   namespace="system.data"   %>  
  <script   language="c#"   runat="server">  
     
        datatable   cart;  
        dataview   cartview;  
     
        icollection   createdatasource()    
        {  
              datatable   dt   =   new   datatable();  
              datarow   dr;  
     
              dt.columns.add(new   datacolumn("id",   typeof(int32)));  
              dt.columns.add(new   datacolumn("username",   typeof(string)));  
              dt.columns.add(new   datacolumn("score",   typeof(double)));  
     
              for   (int   i   =   0;   i   <   10;   i++)    
              {  
                    dr   =   dt.newrow();  
     
                    dr[0]   =   i;  
                    dr[1]   =   "学生   "   +   i.tostring();  
                    dr[2]   =   30   +   i*10;  
     
                    dt.rows.add(dr);  
              }  
     
              dataview   dv   =   new   dataview(dt);  
              return   dv;  
        }  
     
        void   page_load(object   sender,   eventargs   e)    
        {  
     
              if   (!ispostback)    
              {  
                    //   need   to   load   this   data   only   once.  
                    itemsgrid.datasource   =   createdatasource();  
                    itemsgrid.databind();  
              }  
        }  
         
        public   static   string   getscore(int   intscore)  
  {  
  if(intscore   >   80   )  
  return   "优秀";  
  else   if(intscore   >   60)  
  return   "良好";  
  else   if(intscore   ==   60)  
  return   "及格";  
  else   if(intscore   <60)  
                                  return   "差";  
  return   "";  
  }  
  </script>  
   
  <html>  
  <head>  
  <meta   http-equiv="content-type"   content="text/html;   charset=gb2312">  
  <title>datagrid   bind   score   sample</title>  
  </head>  
  <body>  
    <form   runat=server>  
   
              <h3>datagrid   bind   score   sample   code   by   laodai_net   </h3>  
     
              <asp:datagrid   id="itemsgrid"   runat="server"  
                        bordercolor="black"  
                        borderwidth="1"  
                        cellpadding="3"  
                        showfooter="true"  
                        autogeneratecolumns="false">  
  <columns>  
    <asp:templatecolumn   sortexpression="score"   headertext="id">  
  <headerstyle   wrap="false"   width="100%"></headerstyle>  
  <itemtemplate>  
  <%#   databinder.eval(container.dataitem,   "score")   %>  
  </itemtemplate>  
  </asp:templatecolumn>  
    <asp:templatecolumn   sortexpression="username"   headertext="学生姓名">  
  <headerstyle   wrap="false"   width="100%"></headerstyle>  
  <itemtemplate>  
  <%#   databinder.eval(container.dataitem,   "username")   %>  
  </itemtemplate>  
  </asp:templatecolumn>  
    <asp:templatecolumn   sortexpression="score"   headertext="学生成绩">  
  <headerstyle   wrap="false"   width="100%"></headerstyle>  
  <itemtemplate>  
  <%#   databinder.eval(container.dataitem,   "score")   %>  
  </itemtemplate>  
  </asp:templatecolumn>  
   
    <asp:templatecolumn   sortexpression="score"   headertext="成绩等级">  
  <headerstyle   wrap="false"   width="100%"></headerstyle>  
  <itemtemplate>  
  <%#   getscore(int32.parse(databinder.eval(container.dataitem,"score").tostring()))   %>  
  </itemtemplate>  
  </asp:templatecolumn>  
     
    </columns>  
         
              </asp:datagrid>  
     
   
        </form>  
   
  </body>  
  </html>  
 

.
处理 SSI 文件时出错
© 2006-2008 All Rights Reserved