سؤال

ولدي FormView (منضم إلى ObjectDataSource) الذي يحتوي على CheckBoxList ان كنت ترغب في ربط خاصية واحدة من الكائن الأساسي الذي هو التعداد مع 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
}
هل كانت مفيدة؟

المحلول

وسيكون لديك لتكرار خلال مجموعات Items وبناء القيم التعداد من هناك.

وينبغي أيضا أن يكون البحث على جوجل لFlaggedEnumTypeConverter مفيدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top