我有一个DropDownList
,它会从ObjectDataSource
加载返回ArrayList<MyObject>
的数据。我想知道,如何过滤返回的ArrayList
。
例如,MyObject
类的一个属性是'IsCompulsory'。 ODS加载ArrayList<MyObject>
后,在将数据绑定到DropDownList
之前,我想删除IsCompulsory = false
所有的对象。
我该怎么做?我认为ObjectDataSource
的{{1}}事件是一个好地方,但我如何过滤这些值&amp;我该怎么回事呢?
答案 0 :(得分:1)
我认为OnSelected方法可能为时已晚,无法过滤数据。另一种方法可能是在ObjectDataSource上使用Parameters
,以便仅查询您需要的数据。这实际上可以提高性能。您可以以声明方式或编程方式设置它们。
以下是一个示例(请参阅下面的链接以获取完整示例):
<asp:objectdatasource
ID="ObjectDataSource1"
runat="server"
SelectMethod="GetMyObject"
TypeName="MyNamespace.MyClass" >
<SelectParameters>
<asp:ControlParameter ControlID="CheckBox1" DefaultValue="false" Name="myCondition" />
</SelectParameters>
</asp:objectdatasource>
完整示例:
答案 1 :(得分:-1)
您可以使用LINQ
来执行此操作,如下所示:
List<MyObject> filteredObjects = (from MyObject obj in sourceObjects
where obj.IsCompulsory == false
select obj).ToList<MyObject>();
假设您在sourceObjects
。
P.S。不要忘记为上面添加using System.Linq;
以便正常工作。
编辑:您现在需要filteredObjects
DataSource
作为DropDownList
。