2009-03-11 14 views
0

FlagsAttributeが適用されたEnumである基底オブジェクトの単一のプロパティにバインドしたいCheckBoxListを含むFormView(ObjectDataSourceにバインドされている)それに。 SelectedValueプロパティにバインドすると、リストから選択した最初の値がプロパティの値として常に表示されます。誰でも、InsertingメソッドやUpdatingメソッドをオーバーライドしたり、チェックボックスリストの値を手動で取得したり、データソースのパラメータに埋め込んだりすることなく、この問題を回避する方法を知っていますか?私は...舞台裏複数の値が1つのフラグenumにバインドされたCheckBoxList

<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

あなたはItemsコレクションを反復処理する必要がありますそこから列挙型の値を構築します。

GoogleでFlaggedEnumTypeConverterを検索すると役立ちます。

+0

ええ、それは私がいつもしてきたことです - 私が知りませんでした。 –

関連する問題