PDA

View Full Version : مشکل در اجرای دستور حذف در GridView



reddevilutd
چهارشنبه 28 بهمن 1394, 10:43 صبح
با عرض سلام خدمت عزیزان
من در asp.net یک GridView ایجاد کردم که اطلاعاتم رو از پایگاه داده می خونه ، ولی وقتی دکمه ی حذف یا ویرایش رو می زنم ، خطا می گیره ، کسی می دونه باید چی کار کنم ؟

protected void gvPost_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "cmd_edit")
{
GridView gr = new GridView();
flag = 1;
rowid = int.Parse(e.CommandArgument.ToString());
int edit = int.Parse(gr.Rows[rowid].Cells[0].Text);

MasterDCDataContext db = new MasterDCDataContext();
var Qdel = db.Posts.Where(c => c.PoID == edit).Single();

txtTitle.Text = Qdel.PoTitle;
txtText.Text = Qdel.PoSummery;
txtAutor.Text = Qdel.PoAutor;

}
else if (e.CommandName == "cmd_del")
{
GridView gr = new GridView();
rowid = int.Parse(e.CommandArgument.ToString());
int delte = int.Parse(gr.Rows[rowid].Cells[0].Text);

MasterDCDataContext db = new MasterDCDataContext();
var Qdel = db.Posts.Where(c => c.PoID == delte).Single();

db.Posts.DeleteOnSubmit(Qdel);
db.SubmitChanges();
gvPost.DataBind();
}
}

این کد ها مربوط به قسمت View Code هست و با اجرای برنامه این خطا رو مشاهده می کنم :


index was out of range. must be non-negative and less than the size of the collection. parameter name : index

line 151: GridView gr = new GridView();hhh
line 152: rowid = int.Parse(e.CommandArgument.ToString());hhh

line153: int delte = int.Parse(gr.Rows[rowid].Cells[0].Text);hhh

یه عکس از اررور هم ضمیمه کردم ، خیلی لطف می کنید اگه راهنماییم کنید.

mr13668248
دوشنبه 23 فروردین 1395, 06:25 صبح
والا من نمیدونم

Davidd
دوشنبه 23 فروردین 1395, 09:56 صبح
سلام.
دوست عزیز هدفت از تعریف گریدویو با نام gr چی بوده؟ این گریدویو بعد از تعریف دیتا نداره و خالیه و طبیعتا gr.Rows[rowid].Cells[0].Text خارج از محدوده است. فک کنم به جای gr از gvPost باید استفاده کنی که یادت رفته :چشمک: