FlagsAttribute が適用された Enum である基になるオブジェクトの単一のプロパティにバインドしたい CheckBoxList を含む FormView (ObjectDataSource にバインド) があります。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
}