在web中 把数据绑定gridview 上
实现 如下格式
名称    数据   单价   金额 
 a      b       c      d
a       c       d      f
小计    b+c  (c+d)/2    d+f
bc     d         c     f
bc     c         e     h
小计   d+c    (c+e)/2   f+h
总计   b+c+d+c          d+f+f+h
请大家帮忙,
谢谢

解决方案 »

  1.   

    舉個例子,在下面事件里面寫方法
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

    ds 你綁定的數據源:
    int count=0; 
    int count1 = 0 ;
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 

         count += int.Parse(ds.Tables[0].Rows[i]["数据"].ToString());
         count1 += int.Parse(ds.Tables[0].Rows[i]["单价"].ToString()); 

          int sum = count;
          int nAv = count1/ds.Tables[0].Rows.Count;        if (e.Row.RowType == DataControlRowType.Footer)//判定当前的行是否属于datarow最后一行
           {
                DataRowView view = (DataRowView)e.Row.DataItem;
                TextBox ts= (TextBox)e.Row.FindControl("textBox1");
                ts.Text = "和為:"+sum.toString();
            }
          }
    .......
      

  2.   

    看不懂样表数据 ....两行竟然都有 c d  ....还有什么 bc .... 到底哪个 c 哦 ......
      

  3.   

    我能把执行两个不同存储过程綁定在一个gridview
      

  4.   

    你在数据库中 用视图写好了再绑定不就完了? 例:
    SELECT dbo.AutoQuiz.QuizID, dbo.AutoQuiz.DealerID, dbo.AutoQuiz.Qtitle,       dbo.AutoQuiz.QuizDate, (dbo.AutoQuizBack.BackText+dbo.AutoQuizBack.BackDate) as 小计★★★★★★★
          dbo.AutoQuizBack.DealerID AS DealerIDS
    FROM dbo.AutoQuiz INNER JOIN
          dbo.AutoDealer ON dbo.AutoQuiz.DealerID = dbo.AutoDealer.DealerID INNER JOIN
          dbo.AutoQuizBack ON dbo.AutoQuiz.QuizID = dbo.AutoQuizBack.QuizID
      

  5.   

      
                 protected static void MergeTextCellAtColumn(DataGrid curGrid,params int[] columns)
                 {
                              foreach(int column in columns)
                              {
                                           MergeTextCellAtColumn(curGrid,column);
                              }
                 }
                 protected static DataTable PrepareNewDataSource(DataTable dataSource,string keyColumnDataSourceName,int columnCount)
                 {
                              DataTable copy = dataSource.Copy();
                              for(int i = 0; i < copy.Rows.Count; i ++)
                              {
                                           string curText = copy.Rows[i][keyColumnDataSourceName].ToString();
                                           string preText = i - 1 > 0 ? copy.Rows[i - 1][keyColumnDataSourceName].ToString():string.Empty;
                                           if(curText == preText)
                                           {
                                                        continue;
                                           }
                                           else if(curText != preText && i - 1 > 0)
                                           {
                                                        //小计行
                                                        DataRow subtotal = dataSource.NewRow();
                                                        subtotal.ItemArray = PrepareItemArray(columnCount);
                                                        dataSource.Rows.InsertAt(subtotal,i);
                                           }
                              }
                              //最后小计行
                              DataRow lastSubtotal = dataSource.NewRow();    
                              lastSubtotal.ItemArray = PrepareItemArray(columnCount);
                              dataSource.Rows.Add(lastSubtotal); 
                              //最终合计行
                              DataRow totalRow = dataSource.NewRow();
                              totalRow.ItemArray = PrepareItemArray(columnCount);
                              dataSource.Rows.Add(totalRow); 
                              return dataSource;
                 }
                 protected static object[] PrepareItemArray(int columnCount)
                 {
                              object[] objs = new object[columnCount];
                              for(int i = 0; i < objs.Length; i ++)
                              {
                                           objs[i] = DBNull.Value;
                              }
                              return objs;
                 }
                 protected static decimal SafeConvertToDecimal(object value)
                 {
                              try
                              {
                                           return Convert.ToDecimal(value);
                              }
                              catch
                              {
                                           return 0;
                              }
                 }   } //UI调用方式
    //获取数据源
    DataTable curDt = objPlan.QueryByYearDeptidProjcet(currYear,deptID,project);
    //调用实现
    PresentUtil.PreparePresent(DGList,curDt,1,"project",4,9,new int[]{5,6,7,8},new int[]{10,11,12,13,14},new int[]{10,11,12,13,14},new int[]{0,1,3,4,5,6,7,8});//数据源结构