PDA

View Full Version : محاسبه مجموع مقادیر یک ستون در گرید ویو



amin_blog
جمعه 29 دی 1391, 17:15 عصر
سلام.
من یه گرید ویو دارم که نام کالا و مبلغ اون رو نمایش میده. چظور میتونم مجموع مبالغ ستون مبلغ رو محاسبه کنم و در یک لیبل نمایش بدم؟
متشکر

malloc
جمعه 29 دی 1391, 17:34 عصر
اینکارو تو دیتابیس هم میتونی انجام بدی . یه فیلد sum تعریف کن کارتو راه میندازه.

حالا اگه میخوای تو کد نویسی اینکارو بکنی خوب یه فور بزار که ستون ها رو از اول تا آخر بره . تو هربار حرکت حلقه فور یه ستونو بخون و جمع کن . تمام

amin_blog
جمعه 29 دی 1391, 17:54 عصر
اینکارو تو دیتابیس هم میتونی انجام بدی . یه فیلد sum تعریف کن کارتو راه میندازه.

حالا اگه میخوای تو کد نویسی اینکارو بکنی خوب یه فور بزار که ستون ها رو از اول تا آخر بره . تو هربار حرکت حلقه فور یه ستونو بخون و جمع کن . تمام

خود گرید ویو من اطلاعات رو با کلی فیلتر کردن دیتا بیس نمایش میده (براساس id کاربر گروه کالا و تاریخ مشخص). حالا میخواستم پس از نمایشش sum بگیرم از ستون مبالغ.
میشه نمونه کدشو بذارید؟ واسه paging بودن گرید ویو هم جواب میده؟

malloc
جمعه 29 دی 1391, 22:46 عصر
خوب اینکار چون paging داره شاید یکم با sql نوشتنش سخت باشه . اما شما میتونی با یه حلقه for از سطر اول تا آخر اون page و بخونی و مجموع اون ستونو حساب کنی . فکر نمیکنم کد سختی داشته باشه . اگه تو نوشتن ان کد به مشکل خوردید بگید براتون یه نمونه بزارم.


ممنون میشم دوستان دیگه اون حالت دیتابیسی رو هم بگن که ما هم استفاه کنیم

fakhravari
جمعه 29 دی 1391, 23:45 عصر
بسته به page size جمع میزنه.
اگر گرید تمپلت نبود
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
Label1.Text = "0";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Label1.Text = (int.Parse(Label1.Text) + int.Parse(GridView1.Rows[i].Cells[0].Text)).ToString();
}

اگر گرید تمپلت بود
foreach (GridViewRow row in GridView1.Rows)
{
TextBox textnum = row.FindControl("TextBox1") as TextBox;

میتونید در حالت GridView1_RowDataBound بزارید

اوبالیت به بو
شنبه 30 دی 1391, 11:48 صبح
درود

من از این روش استفاده می کنم:

//مجموع هزینه
gvRepairs.FooterRow.Cells[3].Text = GetSumOfCosts().ToString();
gvRepairs.FooterRow.Cells[3].BackColor = System.Drawing.Color.LightBlue;
gvRepairs.FooterRow.Visible = true;
تابع GetSumCosts هم میاد مجموع هزینه رو محاسبه می کنه:


private int GetSumOfCosts()
{
int Sum = 0;

for (int i = 0; i < gvRepairs.Rows.Count; i++)
{
Sum += Convert.ToInt32(gvRepairs.Rows[i].Cells[3].Text);
}

return Sum;
}

shahram hosseini
شنبه 30 دی 1391, 17:37 عصر
می تونی از dataset استفاده کنی .جدولت را داخل dataset درگ کن و
98670
98671
98672
98673
98674
و سپس کد زیر را در برنامه ات بنویس
protected void Button1_Click(object sender, EventArgs e)
{
tJornalTableAdapter t = new tJornalTableAdapter();
Label6.Text = t.sum().ToString();
}

پارسامهر
شنبه 03 بهمن 1394, 05:41 صبح
بسته به page size جمع میزنه.
اگر گرید تمپلت نبود
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
Label1.Text = "0";
for (int i = 0; i < GridView1.Rows.Count; i++)
{
Label1.Text = (int.Parse(Label1.Text) + int.Parse(GridView1.Rows[i].Cells[0].Text)).ToString();
}

اگر گرید تمپلت بود
foreach (GridViewRow row in GridView1.Rows)
{
TextBox textnum = row.FindControl("TextBox1") as TextBox;

میتونید در حالت GridView1_RowDataBound بزارید


اگه گریدویو paging باشه چطور مجموع کل اون ستون رو در تمام صفحه ها بدست بیاریم؟