views:

237

answers:

2

Hey, I have a CheckBoxList that gets populated with the database. When I make any changes to the state (check or uncheck) of a single checkbox, it doesn't get returned when I submit my form.

To its simplest form, I have:

<asp:CheckBoxList runat="server" ID="listEmployes" RepeatDirection="Horizontal">
</asp:CheckBoxList>

C#:

protected void btnSubmit_Click(object sender, EventArgs e)
{
 _connection.Open();

 var employes = listEmployes.Items;

 foreach (ListItem employe in employes)
 {
  if (employe.Selected)
  {
   _command = new MySqlCommand(String.Format("INSERT IGNORE INTO Liste_Employes (Projet_ID, User_ID) VALUES ({0}, {1})", _projetId, employe.Value), _connection);
  }
  else
  {
   _command = new MySqlCommand(String.Format("DELETE IGNORE FROM Liste_Employes WHERE Projet_ID = {0} AND User_ID = {1}", _projetId, employe.Value), _connection);
  }

  _command.ExecuteNonQuery();
 }


}

Am I missing something? Thanks.

+1  A: 

What is in your Page_Load method? I am guessing that you are not checking for !Page.IsPostBack before you bind the checkboxes.

Bob
+2  A: 

Make sure your CheckBoxList is not being rebound on postbacks (if you're databinding from code).

If(!Page.IsPostBack) 
{
    // Bind code
}
Paperjam
Thanks it worked. Coming from a PHP coder, ASP.net has its own special ways I guess...
AlexDemers