PDA

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



mahdioo12194
جمعه 18 شهریور 1390, 20:27 عصر
سلام از دوستان خواهش می کنم برنامه زیر را بررسی نمایند ببینند مشکل از کجاست؟

با تشکر

mahdioo12194
پنج شنبه 31 شهریور 1390, 15:54 عصر
البته جمع مقدیر را در تکست باکس یا جای دیگه می ریزم نشون می ده ولی در footer هر کار می کنم نشون نمی ده؟



protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int Total = 0;


for (int i = 0; i < GridView1.Rows.Count; i++)
{
Total += Convert.ToInt32(GridView1.Rows[i].Cells[1].Text);

}

((Label)GridView1.FooterRow.FindControl("Label2")).Text = Convert.ToString(Total);
}

dontspeak
پنج شنبه 31 شهریور 1390, 18:38 عصر
سلام دوست عزیز
چون داره footer رو هم باهاش جمع می کنه این ارور رو میده باید یه شرط بزاری که footer , header رو با اون جمع نکنه. اون شرط اینه

if (e.Row.RowType == DataControlRowType.DataRow)
موفق باشید

mahdioo12194
پنج شنبه 31 شهریور 1390, 19:27 عصر
سلام ممنون ولی من هر جا این کد رو گذاشتم باز اجرا نشد :عصبانی++: خواهشا بگید کجا و چه جوری باید استفاده شود چون

من مبتدی هستم؟

با تشکر

dontspeak
پنج شنبه 31 شهریور 1390, 20:32 عصر
داخل حلقه for باید بزارید و اگه جواب true بود اون خط کد داخل حلقه for رو اجرا کنه
Total += Convert.ToInt32(GridView1.Rows[i].Cells[1].Text);

mahdioo12194
پنج شنبه 31 شهریور 1390, 20:47 عصر
همین کار رو کردم ولی باز هم ارور می ده؟ همون ارور قبلی؟!!!!!!

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

dontspeak
پنج شنبه 31 شهریور 1390, 21:55 عصر
اینم نمونه که 100% کار می کنه و خودم تست کردم

mahdioo12194
پنج شنبه 31 شهریور 1390, 22:15 عصر
دوست عزیز این برنامه حاصل جمع رو در بیرون گرید و در یک لیبل نمایش می دهد اما من می خوام در footer خود گرید نشون بدم مشکل اینه و گرنه برنامه من هم اگر

به جای کد


((Label)GridView1.FooterRow.FindControl("Label2")) .Text = Convert.ToString(Total);


بنویسم این:



Label1.Text = Total.ToString();


کار میکنه!!!

TeacherMath
پنج شنبه 31 شهریور 1390, 22:54 عصر
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TableCell cellNumber = e.Row.Cells[1];

Total += int.Parse(cellNumber.Text);
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "جمع";
e.Row.Cells[1].Text = Total.ToString();
}

Label1.Text = Total.ToString();
GridView1.ShowFooter = true;

}