Frage

Ich habe ein Formview (gebunden an ein Object), die eine CheckBoxList enthält, die ich auf eine einzige Eigenschaft des zugrunde liegenden Objekts binden mag, dass ein Enum mit dem Flags ist darauf angewandt. Die Bindung an die SelectedValue Eigenschaft gibt mir immer nur den ersten ausgewählten Wert aus der Liste als die Wert der Eigenschaft. Wer weiß, wie dies zu umgehen, ohne das Einfügen von Überschreiben oder Methoden aktualisiert und manuell die Werte der Checkbox-Liste bekommen und es in die Parameter der Datenquelle zu stopfen? Beispielcode unten von dem, was ich versuche zu tun ...

<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>

hinter den Kulissen, mein Objekt wird wie folgt erklärt ...

public class MyClass
{
   public MyEnum MyProperty { get; set; }
}

[Flags()]
public Enum MyEnum
{
   ChoiceOne = 1,
   ChoiceTwo = 2
}
War es hilfreich?

Lösung

Sie müssen durch die Items Sammlungen iterieren und die ENUM-Werte von dort aufzubauen.

Eine Suche auf Google für FlaggedEnumTypeConverter sollte auch hilfreich sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top