Datagrid中数据如下
补考科目   第一学期  第二学期  合计
  语文      $80        $80     $160
  数学      $85        $85     $170
······
······  总分      $165       $165    $330点击标题可以排序,其中总分在Footer中,不参与排序。请问如何实现每一列的数值相加,并在Footer中显示,不参与排序。

解决方案 »

  1.   

    http://www.syncfusion.com/faq/aspnet/search/362.aspx参照下
      

  2.   

    1)设置DataGrid的ShowFooter属性为true;2)添加ItemDataBound事件处理程序:
    int total1 = 0;
            int total2 = 0;
            private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
            {
                if(e.Item.ItemIndex>-1)
                {
                     total1+= Convert.ToInt32(e.Item.Cells[1].Text.Substring(1));
                    total2+= Convert.ToInt32(e.Item.Cells[2].Text.Substring(1));
                }
                else if(e.Item.ItemType == ListItemType.Footer)
                {
                    e.Item.Cells[0].Text = "总计";
                    e.Item.Cells[1].Text = total1.ToString();
                    e.Item.Cells[2].Text  total2.ToString();
                }
               
            }
      

  3.   

    第一学期和第二学期末班列中用的是Label控件来邦定的,另外$80是不能直接进行加法运算得,请问有没有办法转换
      

  4.   

    Label控件也不是什么问题呀?
    <asp:Label id="Label1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "field1")%>'></asp:Label>那么改为
    total1+= Convert.ToInt32(((Label)e.Item.FindControl("Label1")).Text.Substring(1));