J'ai un FormView (lié à un ObjectDataSource) qui contient un CheckBoxList que je voudrais lier à une seule propriété de l'objet sous-jacent qui est un Enum avec le FlagsAttribute appliqué à lui. La liaison à la propriété SelectedValue me donne toujours juste la PREMIÈRE valeur sélectionnée dans la liste comme valeur de la propriété. Quelqu'un sait-il comment contourner cela sans surcharger les méthodes d'insertion ou de mise à jour et en obtenant manuellement les valeurs de la liste de cases à cocher et en les insérant dans les paramètres de la source de données? Exemple de code ci-dessous de ce que je suis en train de faire ...CheckBoxList avec plusieurs valeurs liées à un seul drapeau enum
<asp:FormView runat="server" ID="MyFormView" DataSourceID="MyDataSource">
<InsertItemTempate>
<asp:CheckBoxList runat="server" ID="MyCbl" SelectedValue='<%# Bind("MyProperty") %>'>
<asp:ListItem Text="Choice 1" Value="ChoiceOne"></asp:ListItem>
<asp:ListItem Text="Choice 2" Value="ChoiceTwo"></asp:ListItem>
</asp:CheckBoxList>
</InsertItemTemplate>
</asp:FormView>
<asp:ObjectDataSource runat="server" ID="MyDataSource" TypeName="MyClass" ...></asp:ObjectDataSource>
dans les coulisses, mon but est déclarée comme ça ...
public class MyClass
{
public MyEnum MyProperty { get; set; }
}
[Flags()]
public Enum MyEnum
{
ChoiceOne = 1,
ChoiceTwo = 2
}
ouais, c'est ce que j'ai toujours fait - je pensais que peut-être il y avait un meilleur moyen que je ne connaissais pas ... –