【问题标题】:CheckBoxList with multiple values bound to a single flag enum多个值绑定到单个标志枚举的 CheckBoxList
【发布时间】:2010-10-12 16:54:14
【问题描述】:

我有一个 FormView(绑定到 ObjectDataSource),其中包含一个 CheckBoxList,我想将其绑定到底层对象的单个属性,该属性是一个应用了 FlagsAttribute 的枚举。绑定到 SelectedValue 属性总是给我从列表中选择的第一个值作为属性的值。任何人都知道如何在不覆盖 Inserting 或 Updating 方法并手动获取复选框列表的值并将其填充到数据源的参数中的情况下解决此问题?下面是我正在尝试做的示例代码...

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

【问题讨论】:

    标签: asp.net .net-3.5 objectdatasource formview checkboxlist


    【解决方案1】:

    您必须遍历 Items 集合并从那里建立枚举值。

    在 Google 上搜索 FlaggedEnumTypeConverter 也应该会有所帮助。

    【讨论】:

    • 是的,这就是我一直在做的事情——只是想也许有更好的出路我不知道......
    猜你喜欢
    • 2015-09-09
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    相关资源
    最近更新 更多