CheckBoxList с несколькими значениями, привязанными к одному перечислению флага - PullRequest
0 голосов
/ 11 марта 2009

У меня есть FormView (привязанный к ObjectDataSource), который содержит CheckBoxList, который я хотел бы привязать к одному свойству базового объекта, который является Enum, с примененным к нему атрибутом FlagsAttribute. Привязка к свойству SelectedValue всегда дает мне ПЕРВОЕ выбранное значение из списка в качестве значения свойства. Кто-нибудь знает, как обойти это, не переопределяя методы Вставка или Обновление и вручную получая значения из списка флажков и вставляя его в параметры источника данных? Пример кода ниже того, что я пытаюсь сделать ...

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

за кадром, мой объект объявлен так ...

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

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

1 Ответ

2 голосов
/ 11 марта 2009

Вам нужно будет пройтись по коллекциям Items и построить оттуда значения перечисления.

Поиск в Google по запросу FlaggedEnumTypeConverter также должен быть полезен.

...