1

私はグリッドビューをバインドしています。すべての列はバインドされたフィールドです:

 <asp:BoundField DataField="PLAN_SEP" ItemStyle-Width="52px" ItemStyle-HorizontalAlign="Center" HeaderText="Plan For The Month" ReadOnly="True" SortExpression="PLAN_SEP" />
<asp:BoundField DataField="ACTUAL_SEP" ItemStyle-Width="52px" ItemStyle-HorizontalAlign="Center" HeaderText="Actual For The Month" ReadOnly="True" SortExpression="ACTUAL_SEP" />
<asp:BoundField DataField="SCORE_FORMONTH" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" HeaderText="Score" ReadOnly="True" SortExpression="SCORE_FORMONTH" />
<asp:BoundField DataField="PLAN_LIVE" ItemStyle-Width="52px" ItemStyle-HorizontalAlign="Center" HeaderText="Plan Upto Month" ReadOnly="True" SortExpression="PLAN_LIVE" />
<asp:BoundField DataField="ACTUAL_LIVE" ItemStyle-Width="52px" ItemStyle-HorizontalAlign="Center" HeaderText="Actual Upto Month" ReadOnly="True" SortExpression="ACTUAL_LIVE" />
<asp:BoundField DataField="SCORE_UPTOMONTH" ItemStyle-Width="80px" ItemStyle-HorizontalAlign="Center" HeaderText="Score" ReadOnly="True" SortExpression="SCORE_UPTOMONTH" />

ここで、それぞれの列値の合計を表示するフッター行を表示する必要があります。合計 | 合計 1 | 合計 2 | ……

これを達成する方法は?

4

2 に答える 2

3

編集

バインドされたフィールドのみ

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
        double total = 0; 
        if (e.Row.RowType == DataControlRowType.DataRow) 
        { 
            string sNum = e.Row.Cells[1].Text;//just changed the index of cells based on your requirements 
            double sum; 
            if(double.TryParse(sNum,out sum)) 
            { 
                total += sum; 
            } 

            GridView1.FooterRow.Cells[1].Text = total.ToString(); 
        } 
 }

また

このようなdataboudnc列とコードを利用できます

int total = 0;
protected void gvEmp_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if(e.Row.RowType==DataControlRowType.DataRow)
  {
       //replace maounty with the name of property 
     total += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "Amount"));
  }
  if(e.Row.RowType==DataControlRowType.Footer)
  { 
    Label lblamount = (Label)e.Row.FindControl("lblTotal");
   lblamount.Text = total.ToString();
  }
}

turotiral を確認してください: http://www.aspdotnet-suresh.com/2011/02/how-to-display-sum-of-columns-total-in.html

于 2012-10-12T06:31:03.900 に答える
0

これは、次のように簡単に実行できます。

aspx:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" onrowdatabound="GridView1_RowDataBound" ShowFooter="true"> <Columns> <asp:BoundField DataField="Qty" /> </Columns> </asp:GridView>

aspx.cs 内

//Define global variable
int totQty = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        totQty += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "Qty"));
    }
    if (e.Row.RowType == DataControlRowType.Footer)
    {
        e.Row.Cells[0].Text = totQty.ToString();
    }
 }

それでおしまい。

于 2014-09-03T08:27:37.097 に答える