Comment enregistrez-vous des éléments d'une CheckBoxList dans un FormView?
-
10-07-2019 - |
Question
J'utilise une CheckBoxList à l'intérieur d'un FormView avec un ObjectDataSource . Afin de lier les valeurs sélectionnées à la CheckBoxList , j'utilise l'événement FormView_DataBound pour rechercher la CheckBoxList et définir les éléments sélectionnés. Cela fonctionne bien.
Maintenant, sauvegarder ces valeurs devient problématique. Est-il possible d'utiliser ObjectDataSource pour mettre à jour ces valeurs, ou dois-je les enregistrer après l'enregistrement ObjectDataSource ?
La solution
mettre ce code dans formview en insérant l'événement ... Itérer la liste des cases à cocher et ajouter l'élément sélectionné dans datatable et le transmettre à votre BLL
CheckBoxList chklRoles = (CheckBoxList)frm.FindControl("chklRoles");
foreach (ListItem liRole in chklRoles.Items)
{
if (liRole.Selected)
{
SecurityDS.SC_RoleRow drwRoles = dtblRoles.NewSC_RoleRow();
drwRoles.Name = liRole.Value;
drwRoles.IsActive = false;
dtblRoles.Rows.Add(drwRoles);
}
}
e.Values["userRole"] = dtblRoles;
Code de page ASPX .. type de paramètre
<InsertParameters>
<asp:Parameter Name="userRole" Type="Object" />
</InsertParameters>
puis effectuez une itération dans votre BLL et enregistrez-le dans la base de données en conséquence