افزودن سطر به کنترل GridView با رویداد کلیک دکمه در سمت کاربر
پنجشنبه 17 اردیبهشت 1394در این مقاله نحوه دریافت مقادیر از textbox و ارسال آنها به کنترل gridview را همراه با ذخیره این اطلاعات در session شرح خواهیم داد, سورس پروژه نیز در ادامه مطلب ضمیمه شده است .
برای افزودن سطر به کنترل gridview و ذخیره آن در session مطابق زیر عمل میکنیم .
یک کنترل GridView به صفحه اضافه می کنیم .خاصیت AutoGenerateColumn را در حالت false قرار می دهیم . سپس سه boundField به آن اضافه میکنیم .(در این مثال با نام RollNo , Name , Class)
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> <columns> <asp:BoundField HeaderText="RollNo" DataField="RollNo"/> <asp:BoundField HeaderText="Name" DataField="Name"/> <asp:BoundField HeaderText="Class" DataField="Class"/> </columns> </asp:GridView>
سپس برای اینکه اطلاعات در یک جدول ثبت شود باید این جدول را نیز ایجاد کنیم .
DataTable GetTable() { DataTable table = new DataTable(); table.Columns.Add("RollNo"); table.Columns.Add("Name"); table.Columns.Add("Class"); return table; }
در رویداد بارگزاری صفحه جدولی که ایجاد کرده ایم را به کنترل GridView متصل میکنیم .
protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt = GetTable(); GridView1.DataSource = dt; GridView1.DataBind(); }
در رویداد کلیک دکمه , یک سطر به به متغبر جدول اضافه می کنیم .سپس اطلاعات جدول را در session یا viewstate ذخیره میکنیم .
همچنین برای SESSION شرط می نویسیم که اگر خالی بود اطلاعات را از جدولی که به صورت پیش فرض ثبت کرده ابم دریافت کند
if (Session["table"] == null) { dt = GetTable(); }
در غیر اینصورت اطلاعات را از textbox هایی که در صفحه قرار داده ایم دریافت کند و در sesion قراردهد
else { dt = (DataTable) Session["table"]; } dt.Rows.Add(txtRollNo.Text, txtName.Text, txtClass.Text); Session["table"] = dt; GridView1.DataSource = dt; GridView1.DataBind(); txtClass.Text = ""; txtName.Text = ""; txtRollNo.Text = "";
لیست کامل کدهای مربوط به رویداد کلیک دکمه را می توانید در ادامه مشاهده کنید .
protected void Button1_Click(object sender, EventArgs e) { try { if (Session["table"] == null) { dt = GetTable(); } else { dt = (DataTable) Session["table"]; } dt.Rows.Add(txtRollNo.Text, txtName.Text, txtClass.Text); Session["table"] = dt; GridView1.DataSource = dt; GridView1.DataBind(); txtClass.Text = ""; txtName.Text = ""; txtRollNo.Text = ""; } catch (Exception ex) {} }
- ASP.net
- 2k بازدید
- 3 تشکر