ذخیره 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 تشکر