1

我有一个DropDownList,它从ObjectDataSource返回的一个加载数据ArrayList<MyObject>。我想知道,如何过滤返回的ArrayList.

例如,MyObject类的属性之一是“IsCompulsory”。一旦 ODS 加载ArrayList<MyObject>并在将其数据绑定到 之前DropDownList,我想删除所有对象IsCompulsory = false

我怎么做?我认为ObjectDataSource'sOnSelected事件是一个好地方,但我如何过滤值以及我应该如何返回它?

4

2 回答 2

1

我相信 OnSelected 方法可能来不及过滤数据。另一种方法是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.

PS不要忘记添加using System.Linq;上面的正常工作。

编辑:您现在需要使用filteredObjectsas 。DataSourceDropDownList

于 2012-04-16T04:45:26.903 回答