1

を返すDropDownListからデータをロードする があります。返された をフィルタリングする方法を知りたいです。 ObjectDataSourceArrayList<MyObject>ArrayList

たとえば、MyObjectクラスのプロパティの 1 つに「IsCompulsory」があります。ODS が読み込まArrayList<MyObject>れ、データが にバインドされる前にDropDownListIsCompulsory = false.

それ、どうやったら出来るの?ObjectDataSourceのイベントは良い場所だと思いOnSelectedましたが、どのように値をフィルタリングし、どのように返す必要がありますか?

4

2 に答える 2

1

OnSelected メソッドでは、データをフィルター処理するには遅すぎる可能性があると思います。もう 1 つの方法はParameters、必要なデータのみをクエリするために ObjectDataSource で使用することです。これにより、実際にパフォーマンスが向上する可能性があります。これらは、宣言的またはプログラム的に設定できます。

以下に例を示します (完全な例については、以下のリンクを参照してください)。

<asp:objectdatasource
  ID="ObjectDataSource1"
  runat="server"
  SelectMethod="GetMyObject"
  TypeName="MyNamespace.MyClass" >
  <SelectParameters>
    <asp:ControlParameter ControlID="CheckBox1" DefaultValue="false" Name="myCondition" />
  </SelectParameters>
</asp:objectdatasource>

完全な例:

http://msdn.microsoft.com/en-us/library/57hkzhy5.aspx

于 2012-04-16T04:58:08.347 に答える
-1

LINQ以下に示すように、それを行うために使用できます。

 List<MyObject> filteredObjects = (from MyObject obj in sourceObjects
                                          where obj.IsCompulsory == false
                                          select obj).ToList<MyObject>();

にリスト(フィルタリングする)があると仮定しますsourceObjects

using System.Linq;PS上記を正しく機能させるために追加することを忘れないでください。

編集:filteredObjectsあなたは今のところ使用する必要がありDataSourceますDropDownList

于 2012-04-16T04:45:26.903 に答える