ذخیره checkbox های انتخاب شده در Asp.net
یکشنبه 19 بهمن 1393در این مقاله لیستی از checkbox ها را نمایش میدهیم و میخواهیم آیتم هایی را که کاربر انتخاب کرده ذخیره کنیم
در پایگاه داده یک جدول با فیلد های زیر میسازیم:

سپس تعدادی رکورد در جدول درج میکنیم و برای همه رکورد ها مقدار فیلد IsSelected را false در نظر میگیریم:

حال به صفحه خود یک CheckBoxList برای نمایش آیتم ها و یک دکمه برای ذخیره مواردی که کاربر انتخاب کرده است :
<asp:CheckBoxList ID="chkHobbies" runat="server"> </asp:CheckBoxList> <br /> <asp:Button ID="btnUpdate" runat="server" Text="Button" OnClick = "UpdateHobbies" />
برای فراخوانی و نمایش chechbox ها از پایگاه داده یک تابع به شکل زیر مینویسیم:
private void PopulateHobbies()
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select * from hobbies";
cmd.Connection = conn;
conn.Open();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
ListItem item = new ListItem();
item.Text = sdr["Hobby"].ToString();
item.Value = sdr["HobbyId"].ToString();
item.Selected = Convert.ToBoolean(sdr["IsSelected"]);
chkHobbies.Items.Add(item);
}
}
conn.Close();
}
}
}
سپس تابع بالا را در رویداد pageload صفحه فراخوانی میکنیم:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.PopulateHobbies();
}
}

حال برای ذخیره موارد انتخاب شده در رویداد کلیک دکمه ای که به صفحه اضافه کردیم کد زیر را مینویسیم:
protected void UpdateHobbies(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = ConfigurationManager
.ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "update hobbies set IsSelected = @IsSelected" +
" where HobbyId=@HobbyId";
cmd.Connection = conn;
conn.Open();
foreach (ListItem item in chkHobbies.Items)
{
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@IsSelected", item.Selected);
cmd.Parameters.AddWithValue("@HobbyId", item.Value);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
}
حالا میتونید برنامه رو اجرا کنید
- ASP.net
- 3k بازدید
- 4 تشکر