ذخیره checkbox های انتخاب شده در Asp.net

یکشنبه 19 بهمن 1393

در این مقاله لیستی از checkbox ها را نمایش میدهیم و میخواهیم آیتم هایی را که کاربر انتخاب کرده ذخیره کنیم

ذخیره checkbox های انتخاب شده در Asp.net

در پایگاه داده یک جدول با فیلد های زیر میسازیم:

سپس تعدادی رکورد در جدول درج میکنیم و برای همه رکورد ها مقدار فیلد 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();
        }
    }
}

حالا میتونید برنامه رو اجرا کنید

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید