Ich habe eine ListView
mit einer EditItemTemplate
, die eine Methode onItemEditing
aufruft.ListView mit CheckBoxList - Ausgewählte Elemente nicht als überprüfte
Innerhalb meiner ListView
habe ich eine CheckBoxList
gebunden mit LINQ
.
In meiner onItemEditing
Methode versuche ich bestimmte CheckBoxes
zu überprüfen, wenn sie in einer Nachschlagetabelle vorhanden sind, die Benutzer mit Sektoren verbindet.
Allerdings, wenn ich die EditItemTemplate
laden keine der CheckBoxes
sind überprüft, obwohl ich sie als in der onItemEditing
Methode ausgewählt haben.
Hier ist die Methode:
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;
}
}
}
}
Irgendwelche Ideen, wie dies zu umgehen?
Wo haben Sie Ihre Kontrolle erstellt? Unter Last, init? –