J'ai un ListView
avec un EditItemTemplate
qui appelle une méthode onItemEditing
.ListView contenant CheckBoxList - Les éléments sélectionnés ne s'affichent pas comme cochés
Dans mon ListView
j'ai un CheckBoxList
lié en utilisant LINQ
.
Dans ma méthode onItemEditing
, j'essaie de vérifier certains CheckBoxes
s'ils sont présents dans une table de consultation qui relie les utilisateurs avec des secteurs.
Cependant, lorsque je charge le EditItemTemplate
, aucun des CheckBoxes
n'est vérifié même si je les ai définis comme sélectionnés dans la méthode onItemEditing
.
Voici la méthode:
protected void onItemEditing(object sender, ListViewEditEventArgs e)
{
ListView1.EditIndex = e.NewEditIndex;
ListView1.DataBind();
int regId = Convert.ToInt32(((Label)ListView1.Items[e.NewEditIndex].FindControl("LblRegId")).Text);
CheckBoxList cbl = (CheckBoxList) ListView1.Items[e.NewEditIndex].FindControl("chkLstSectors");
//test to see if forcing first check box to be selected works - doesn't work
cbl.Items[0].Selected = true;
SqlConnection objConn = new SqlConnection(ConfigurationManager.ConnectionStrings["DaresburyConnectionString"].ToString());
SqlCommand objCmd = new SqlCommand("select * from register_sectors where register_id= " + regId, objConn);
objConn.Open();
SqlDataReader objReader = objCmd.ExecuteReader();
if (objReader != null)
{
while (objReader.Read())
{
ListItem currentCheckBox = cbl.Items.FindByValue(objReader["sector_id"].ToString());
if (currentCheckBox != null)
{
currentCheckBox.Selected = true;
}
}
}
}
Toute idée comment contourner cela?
Où avez-vous créé votre contrôle? En charge, sur init? –