Learn.net37 Ответов: 1

Вычислить сумму в нижнем колонтитуле для всех страниц в gridview


Здравствуйте, у меня есть проблема, что общая сумма для 3 col, которая у меня есть, будет вычислять каждую страницу в одиночку, когда мне нужно вычислить общую сумму для всех страниц, а не для каждой страницы в одиночку с помощью gridview

как вы видите в коде blow у меня есть 3 col, каждый из них будет иметь total, но когда я включаю подкачку, он дает мне total для каждой страницы, и мне нужно total для всех страниц

тнх...

Что я уже пробовал:

int RENT = 0;
        int AMOUNTLEFT = 0;
        int AMOUNTPAID = 0;
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
    {
         RENT += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "RENT"));
         AMOUNTLEFT += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, " AMOUNTLEFT"));
         AMOUNTPAID += Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, " AMOUNTPAID"));
    }
    // Display totals in the gridview footer
    else if (e.Row.RowType == DataControlRowType.Footer)
    {
        e.Row.Cells[14].Text = "Grand Total المجموع :-";
        e.Row.Cells[14].Font.Bold = true;
 
        e.Row.Cells[16].Text = AMOUNTPAID.ToString();
        e.Row.Cells[16].Font.Bold = true;
       
 
        e.Row.Cells[17].Text = RENT.ToString();
        e.Row.Cells[17].Font.Bold = true;
 
        e.Row.Cells[15].Text = AMOUNTLEFT.ToString();
        e.Row.Cells[15].Font.Bold = true;
 
           
    }
}

1 Ответов

Рейтинг:
8

Karthik_Mahalingam

попробуй вот так

if (e.Row.RowType == DataControlRowType.Footer)
            {
                DataTable dt = GridView1.DataSource as DataTable;
                int RENT = 0;
                int AMOUNTLEFT = 0;
                int AMOUNTPAID = 0;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    RENT += Convert.ToInt32(dt.Rows[i]["RentColumnName"]);
                    AMOUNTLEFT += Convert.ToInt32(dt.Rows[i]["AMOUNTLEFTColumnName"]);
                    AMOUNTPAID += Convert.ToInt32(dt.Rows[i]["AMOUNTPAIDColumnName"]);
                }

                e.Row.Cells[14].Text = "Grand Total المجموع :-";
                e.Row.Cells[14].Font.Bold = true;

                e.Row.Cells[16].Text = AMOUNTPAID.ToString();
                e.Row.Cells[16].Font.Bold = true;


                e.Row.Cells[17].Text = RENT.ToString();
                e.Row.Cells[17].Font.Bold = true;

                e.Row.Cells[15].Text = AMOUNTLEFT.ToString();
                e.Row.Cells[15].Font.Bold = true;
             }


Learn.net37

получение ошибки ссылка на объект не установлена на экземпляр объекта.

здесь (for (int i = 0; i < dt.Rows.Граф; i++))

Karthik_Mahalingam

объявите datatable глобально и попробуйте получить доступ к объекту