افزودن سطر به کنترل 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 تشکر