سلام
من یه گیرید ویو دارم که در زمان فرم لود پر میشه
اما مشکل اینجاست وقتی روی دکمه edit delete کلیک میکنم هیچ اتفاقی نمیفته
چیکار باید کرد؟
مرسی
کدها رو ضمیمه کن ببینیم مشکل کجاست
protected void Page_Load(object sender, EventArgs e) { // GridView4.Visible = false; int code = Convert.ToInt32(Session["code"]); var pubname = (from o in pub.p_publication where o.code == code select o).First(); Label2.Text = pubname.name; /* Verifies that the control is rendered */ var data = (from o in pub.p_Subscribe join i in pub.P_Ostan on o.SubOstan equals i.ID into a_lg from i in a_lg.DefaultIfEmpty() join f in pub.p_publication on o.SubPubliccode equals f.code where o.SubPubliccode == code select new { o.SubKey, o.SubCode, o.SubNationalCode, o.SubFam, o.SubPhone, o.SubOstan, o.SubCity, o.SubTerm, o.SubStatus, i.Ostan, }).ToList(); GridView1.DataSource = data; GridView1.DataBind(); }
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { switch (e.CommandName) { case "DoEdit": { int ID = int.Parse(e.CommandArgument.ToString()); var p = (from u in pub.p_Subscribe where u.SubKey == ID select u).First(); TextBox25.Text = p.SubBank; TextBox26.Text = p.SubText; RadioButtonList1.SelectedValue = p.SubEshterak.ToString(); TextBox1.Text = p.SubEmail; TextBox2.Text = p.SubMobile; TextBox3.Text = p.SubPhone; DropDownList1.SelectedValue = p.SubEducationID.ToString(); DropDownList2.SelectedValue=p.SubGender.ToString(); DropDownList4.SelectedValue=p.SubOstan.ToString(); DropDownList5.SelectedValue = p.SubCity.ToString(); DropDownList3.SelectedValue=p.CourierID.ToString(); RadioButtonList1.SelectedValue=p.SubStatus.ToString(); TextBox4.Text=p.SubPostalCode; TextBox5.Text=p.Subline.ToString(); TextBox6.Text=p.SubAddress; TextBox8.Text=p.SubTerm.ToString(); TextBox9.Text=p.SubStartSend; TextBox10.Text=p.SubShareDate; TextBox11.Text=p.SubDateBirth; TextBox12.Text=p.SubFather; TextBox13.Text=p.SubFam; TextBox14.Text=p.SubName; TextBox15.Text=p.SubNationalCode; TextBox16.Text=p.SubCode.ToString(); TextBox17.Text=p.Mainstreet; TextBox18.Text = p.FirstNumber; TextBox19.Text=p.LastNumber; TextBox20.Text=p.FishNumber; TextBox23.Text = p.FishDate; TextBox24.Text = p.FishCost; ViewState["ID"] = ID; pub.SaveChanges(); GridView1.DataBind(); // GridView2.DataBind(); Label4.Visible = false; break; } case "DoDelete": { int ID = int.Parse(e.CommandArgument.ToString()); var p1 = pub.p_Subscribe.First(o => o.SubKey == ID); pub.p_Subscribe.DeleteObject(p1); pub.SaveChanges(); GridView1.DataBind(); // GridView2.DataBind(); Label4.Visible = false; break; } } }
int
ID =
int
.Parse(e.CommandArgument.ToString())
این خط از برنامه شما ای دی مربوط به سطر انتخاب شده را بیرون میکشه نه ای دی رکورد . شما باید از ای دی رکورد استفاده کنید . برای بیرون آوردن ای دی رگورد را در گیرید bound کنید سپس از کد زیر بیرون کشیده و query بگیرید
یعنی بجایی ای دی اول از ادی رکورد که با دستور زیر به دست میاد در query استفاده کنید.
gridview1.rows[id].cell[0].text و فراموش نکنید حتما convert.toint32 را انجام دهید . امیدوارم مفید بوده باشه.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)