PDA

View Full Version : سوال: مشکل با حذف در گریدویو



el_abdollahi
شنبه 22 خرداد 1389, 13:01 عصر
با سلام

مشکل من اینه که وقتی میخوام یک رکورد رو از صفحه دوم گریدویوم حذف کنم. اون متوجه نمیشه. یعنی تنها رکوردهای صفحه اول رو چک میکنه.با اینکه من ۱۹ تا رکورد دارم gridview.rows.count مقدار ۹ رو برمیگردونه یعنی تنها صفحه اول.


protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
CheckBox chkRemove = default(CheckBox);
bool boolCheck = false;
cCollection cls = new cCollection();
foreach (GridViewRow gvRow in GridView1.Rows)
{
chkRemove = (CheckBox)gvRow.FindControl("ChkRemove");
if (chkRemove.Checked)
{
boolCheck = true;
cls.CollectionId = (int)GridView1.DataKeys[gvRow.RowIndex].Value;
cls.Delete();
}
}
if (boolCheck == true)
{
BindGridView();
}
}

Vahid_moghaddam
شنبه 22 خرداد 1389, 13:21 عصر
کد رویداد bind کردن DataSource به گریدویو و رویداد تغییر PageIndex رو بذارید.

el_abdollahi
دوشنبه 24 خرداد 1389, 08:49 صبح
public void BindGridView()
{
cCollection obj = new cCollection();
AmvalDataSet.tbl_collectionDataTable dt = new AmvalDataSet.tbl_collectionDataTable();
dt = obj.SelectAllCollectionWithCity();

GridView1.DataSource = dt;
GridView1.DataBind();

}




protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
BindGridView();
}

hamedsabzian
دوشنبه 24 خرداد 1389, 10:16 صبح
توی کد تون کی BindGridView رو فرا خونی می کنید؟

el_abdollahi
دوشنبه 24 خرداد 1389, 10:52 صبح
توی فرم لود توی PageIndexChanging بعد از اضافه و حذف
هر جایی که لازم بوده
میشه بگین فکر میکنین مشکل از کجاست؟
ممنون

Vahid_moghaddam
دوشنبه 24 خرداد 1389, 11:57 صبح
وقتی می خواید عمل check رو انجام بدید، gridview دارای تمام رکوردهای موجود در datasource نیست. دارای رکوردهایی هست که آخرین بار به اون Bind شده. GridView اطلاعی از صفحه قبل و بعد نداره. مطمئنید صفحه اول چک می شه؟ یا اون 9 سطر مربوط به صفحه دومه؟

el_abdollahi
دوشنبه 24 خرداد 1389, 12:02 عصر
ولی من بایند گرید ویو رو به صورت صفحه به صفحه ننوشتم و کل رکوردها رو بهش بایند میکنم.
توی فرم های دیگه هم همین طور کار میکنم و این مشکل رو ندارم!

Vahid_moghaddam
دوشنبه 24 خرداد 1389, 12:08 عصر
ولی من بایند گرید ویو رو به صورت صفحه به صفحه ننوشتم و کل رکوردها رو بهش بایند میکنم.
توی فرم های دیگه هم همین طور کار میکنم و این مشکل رو ندارم!

مگه paging ندارید؟ شما یه میلیون رکورد bind کنید. وقتی page size برابر 10 هست، 10 تا رکورد render می شه.

hamedsabzian
دوشنبه 24 خرداد 1389, 12:32 عصر
مطمئنید قبل از انجام Deleting در صفحه ی دوم هستید؟

el_abdollahi
دوشنبه 24 خرداد 1389, 12:55 عصر
بله
این جدول من رکورد زیادی نداره و به همین علت از paging استفاده نکردم.
و خوب آره من مطمئنم که توی صفحه دوم هستم. رکورد رو انتخاب مبکنم و بد حذف میکنم.