0

フッターに表示される GridView テーブルのすべての値の総計を作成しようとしています。プレースホルダーの作成から始めましたが、総計の作成方法がわかりません。

        <FooterTemplate>
            <asp:Label ID="lblGrandTotal" runat="server" Text=""></asp:Label>
        </FooterTemplate>                  
    </asp:TemplateField>               
</Columns>
4

2 に答える 2

1

単一の列のみを追加する場合、これは機能するはずです..

コード ビハインド C#

decimal totalA = 0;

protected void gvAlexandria_RowDataBound(object sender, GridViewRowEventArgs e)
{
    string totalAmtFinanced = ((Label)gvVehicleTEMP.FooterRow.FindControl("lblTotalAmtFinanced")).Text;

    if (e.Row.RowType == DataControlRowType.DataRow)
    {        
        totalA += Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "AmtFinanced"));
    }
    if (e.Row.RowType == DataControlRowType.Footer)
    {
        //Label lblTotal = (Label)e.Row.FindControl("lblTotal");

        if (totalAmtFinanced != null)
        {                   
            totalAmtFinanced = String.Format("{0:c}", totalA);
        }
    }
}

集計しているグリッドビューの列は AmtFinanced と呼ばれます。これが、1つの列を合計する方法です。何か問題がありましたら、お知らせください。

于 2013-10-30T15:29:07.450 に答える
1

こんにちは、グリッドビューでこれを行います

<asp:TemplateField HeaderText="Amount">
    <ItemTemplate>
        <asp:Label ID="lblAmount" runat="server" 
                   Text='<%# Eval("Amount","0:N2}").ToString %>'>
        </asp:Label>
    </ItemTemplate>
    <FooterTemplate>
        <asp:Label ID="lblTotal" runat="server"></asp:Label>
    </FooterTemplate>
</asp:TemplateField>

public のように宣言する

Private grdTotal As Decimal = 0

グリッドビューからのイベント RowDataBound の後

If e.Row.RowType = DataControlRowType.DataRow Then
    Dim rowTotal As Decimal =
    Convert.ToDecimal(DataBinder.Eval(e.Row.DataItem, "Amount"))
    grdTotal = grdTotal + rowTotal
End If
If e.Row.RowType = DataControlRowType.Footer Then
    Dim lbl As Label = DirectCast(e.Row.FindControl("lblTotal"), Label)
    lbl.Text = grdTotal.ToString("N2")
End If
于 2013-10-30T15:34:40.270 に答える