0

这是我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        try
        {
            int IndexTypeID = 5;
            mobjORACLE = new DatabaseObjects.OracleDBCalls();
            DataSet dsetPortfolio = mobjORACLE.GetORACLEDataSet(IndexTypeID, "v_indextypeid", "cv_1", "fn_getportfolio");

            if (dsetPortfolio.Tables[0].Rows.Count > 0)
            {
                ViewState["gvPortfolio_DataSource"] = dsetPortfolio.Tables[0];
                gvPortfolio.DataSource = dsetPortfolio.Tables[0];
                gvPortfolio.DataBind();
                gvPortfolio.Visible = true;
                //dsetPortfolio.Tables[0].Rows[0]["cashreserve"];

                //ViewState["gvPortfolio_DataSource"] = gvPortfolio.DataSource;
                gvPortfolio.Attributes.Add("bordercolor", "#999966");
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}

在 gvPortfolio 中,我得到了一个数据表,其中按名称分配了一个列。现在的问题是,我需要总结列并在页脚中显示其结果。有人可以帮助我摆脱这种情况。

4

2 回答 2

1

您将使用GridView.RowDataBound Event

摘自微软文档:

在呈现 GridView 控件之前,控件中的每一行都必须绑定到数据源中的一条记录。当数据行(由 GridViewRow 对象表示)绑定到 GridView 控件中的数据时,将引发 RowDataBound 事件。这使您能够提供一种事件处理方法,该方法执行自定义例程,例如在此事件发生时修改绑定到行的数据的值。

例如:

void gvPortfolio_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.Footer)
    {
        // Once you know you are in the footer row
        // the sender object is the GridView and you can get the datasource
        // loop thru the datatable adding up the values you want
        // For example: let say column 3 have the number
        // **** code is not tested - writing from memory ***
        int total = 0;
        int column = 3;
        foreach(DataRow row in (DataTable)(sender.DataSource).Rows)
        {
              if (!row.IsNull(column))
              {
                  // probably need more checking to make sure we have a valid integer
                  total += Convert.ToInt32(row[column]);
              }
        }

        e.Row.Cells[column].Text = total.ToString();
    }
}
于 2013-10-17T14:49:51.607 回答
0

早上好,我相信上一篇文章应该可以帮助您完成您想要完成的工作。

于 2013-10-17T14:45:37.410 回答