2

グリッドビューを動的に作成しました。デザイン部分に記述されたテンプレートフィールドがあります。すべての列は、次のコード ビハインドを通じて作成されました。その作品はうまくいきます。ここで、各行のページをリストできます。しかし、コードビハインドを介してフッターテンプレートにページの合計を実装する方法がわかりません。

TemplateField Pages = new TemplateField();
Pages.HeaderText = "Pages";
Pages.ItemTemplate = new GridViewTemplate_Pages();
gv1.Columns.Add(Pages);


    public class GridViewTemplate_Pages : ITemplate
    {

        void ITemplate.InstantiateIn(Control container)
        {
            Label PagesLabel = new Label();
            PagesLabel.DataBinding += new EventHandler(this.PagesLabel_DataBinding);
            container.Controls.Add(PagesLabel);
        }

        void PagesLabel_DataBinding(object sender, EventArgs e)
        {
            Label lbl1 = (Label)sender;
            GridViewRow row = (GridViewRow)lbl1.NamingContainer;
            lbl1.Text = DataBinder.Eval(row.DataItem, "PagesReceived").ToString();
        }
    }

aspx ページで ShowFooter="True" を指定し、RowDataBound を個別に記述します。次のコードは、aspx ページでフッター テンプレートを指定しても問題なく動作しますが、プログラムで結果を取得する方法がわかりません。ご意見をお聞かせください。

    protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            int RowTotalPages = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "PagesReceived"));
            TotalPages = TotalPages + RowTotalPages;
        }
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Label m = (Label)e.Row.FindControl("gv1TotalPages");
            m.Text = TotalPages.ToString();
        }
    }
4

2 に答える 2

1

このようなグリッドビューにフッターを作成できます。

//コード

GridView gv = new GridView();
gv.RowCreated += delegate(object dsender, GridViewRowEventArgs ge)
{
    if (ge.Row.RowType == DataControlRowType.Footer)
        ge.Row.Cells[0].Text = "Something";
};
gv.AutoGenerateColumns = false;
gv.ShowFooter = true;
BoundField bf = new BoundField();
bf.HeaderText = "col 1";
bf.DataField = "Length";
gv.Columns.Add(bf);
gv.DataSource = new string[] { "One", "Two", "Three" };
gv.DataBind();
Form.Controls.Add(gv);

これは、動的に作成されたグリッドビューとフッター用です。それに応じて変更できます。

于 2013-05-22T05:19:39.053 に答える