ارسال مقادیر GridView به صفحه دیگر و به روزرسانی رکوردها
پنجشنبه 12 شهریور 1394در این مقاله، آموزش می دهیم که چگونه مقادیر سطرهای GridView را به صفحه ای دیگر ارسال کرده و مقادیر رکوردها را به روزرسانی نماییم و با استفاده از asp.net آن را به صفحه اصلی برگردانیم.
مراحل انجام کار:
- ویژوال استودیو 2013 را باز می کنیم.
- یک پروژه از نوع ASP.NET Web Application به نام UpdateGridviewRowValuesInSecondPage ایجاد می کنیم.
- روی نام پروژه کلیک کرده و یک Web Form به برنامه اضافه می کنیم.
- کد زیر را در تگ <form> در صفحه WebForm1.aspx اضافه می کنیم.
<div> <asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand"> <Columns> <asp:BoundField DataField="EmpNo" HeaderText="EmpId" /> <asp:BoundField DataField="EmpName" HeaderText="EmpName" /> <asp:BoundField DataField="Job" HeaderText="Job" /> <asp:BoundField DataField="Sal" HeaderText="EmpSalary" /> <asp:BoundField DataField="Dept" HeaderText="Department" /> <asp:TemplateField> <ItemTemplate> <asp:Button ID="btnEdit" runat="server" Width="60" Text="Edit" CommandName="EditButton" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div>
- کد زیر را نیز در رویداد Page Load صفحه اضافه می کنیم.
protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { BindGridView(); } } private void BindGridView() { string constr = ConfigurationManager.ConnectionStrings["con"].ConnectionString; SqlConnection con = new SqlConnection(constr); SqlCommand cmd = new SqlCommand("select * from Emp",con); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); GridView1.DataSource = dt; GridView1.DataBind(); }
- کد زیر، متد رویداد GridView1_RowCommand از صفحه WebForm1.aspx می باشد.
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "EditButton") { int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rows[index]; Response.Redirect("~/UpdateGridView.aspx?EmpNo=" + row.Cells[0].Text); } }
- صفحه دیگری به نام UpdateGridView.aspx به پروژه اضافه می کنیم و کد زیر را در تگ <form> آن می نویسیم.
<div> <table> <tr> <td>EmpId</td> <td> <asp:TextBox ID="txtEmpId" runat="server" ReadOnly="true" /> </td> </tr> <tr> <td>EmpName</td> <td> <asp:TextBox ID="txtEmpName" runat="server" /> </td> </tr> <tr> <td>Job</td> <td> <asp:TextBox ID="txtJob" runat="server" /> </td> </tr> <tr> <td>EmpSalary</td> <td> <asp:TextBox ID="txtEmpSalary" runat="server" /> </td> </tr> <tr> <td>Department</td> <td> <asp:TextBox ID="txtDept" runat="server" /> </td> </tr> <tr> <td align="center"> <asp:Button ID="btnUpdate" runat="server" Text="Update" OnClick="btnUpdate_Click" /> </td> <td align="center"> <asp:Button ID="btnCancel" runat="server" Text="Cancel" OnClick="btnCancel_Click" /> </td> </tr> </table> lt;/div>
- و کد زیر را در رویداد Page Load می نویسیم.
int empno = 0; protected void Page_Load(object sender, EventArgs e) { empno = Convert.ToInt32(Request.QueryString["EmpNo"].ToString()); if (!IsPostBack) { BindTextBoxvalues(); } } private void BindTextBoxvalues() { string constr = ConfigurationManager.ConnectionStrings["con"].ConnectionString; SqlConnection con = new SqlConnection(constr); SqlCommand cmd = new SqlCommand("select * from Emp where EmpNo=" + empno, con); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); txtEmpId.Text = dt.Rows[0][0].ToString(); txtEmpName.Text = dt.Rows[0][1].ToString(); txtJob.Text = dt.Rows[0][2].ToString(); txtEmpSalary.Text = dt.Rows[0][3].ToString(); txtDept.Text = dt.Rows[0][4].ToString(); }
- کد زیر را در رویداد کلیک دکمه btnUpdate که در صفحه وجود دارد، می نویسیم.
protected void btnUpdate_Click(object sender, EventArgs e) { string constr = ConfigurationManager.ConnectionStrings["con"].ConnectionString; SqlConnection con = new SqlConnection(constr); SqlCommand cmd = new SqlCommand("update Emp set EmpName='" + txtEmpName.Text + "',Job='" + txtJob.Text + "',Sal=" + txtEmpSalary.Text + ",Dept='" + txtDept.Text + "' where EmpNo=" + empno, con); con.Open(); int result = cmd.ExecuteNonQuery(); con.Close(); if (result == 1) { ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowSuccess", "javascript:alert('Record Updated Successfully');", true); } Response.Redirect("~/WebForm1.aspx"); }
- قطعه کد زیر را نیز در رویداد دکمه btnCancel می نویسیم.
protected void btnCancel_Click(object sender, EventArgs e) { Response.Redirect("~/WebForm1.aspx"); }
- حال اگر برنامه را اجرا کنید، خروجی به شکل زیر خواهید دید:
- تصویر زیر، به روزرسانی دستمزد کارمندی با شماره کارمندی 1 را نشان می دهد.
- بعد از به روزرسانی می توانید به صفحه GridView برگشته و به روزرسانی را چک کنید.
- ASP.net
- 1k بازدید
- 3 تشکر