문제

나는 formview (ObjectDatasource에 바인딩)가 있습니다.이 checkboxlist가 포함되어있는 flagsattribute와 함께 열거 인 기본 객체의 단일 특성에 바인딩하려는 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
}
도움이 되었습니까?

해결책

당신은 Items 수집하고 거기에서 열거 값을 구축하십시오.

Google에서 검색 FlaggedEnumTypeConverter 또한 도움이되어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top