商信互联
在本课程中,您将学习如何过滤列表视图。将说明基于不同场景的三种技术。在本课程中,过滤器将应用于“联系人列表视图”。
在继续之前,请花一点时间回顾以下课程。
使用此方法可使最终用户将预定义的过滤器应用于特定的列表视图。通过这种方法,SetFilter操作(其项代表预定义的过滤器)在用户界面中可见。仅针对列表视图激活此操作。可以在“应用程序模型”中添加预定义的过滤器,并由“视图” |“子视图”的子节点表示。<ListView> | 过滤器节点(请参阅过滤器应用程序模型节点)。
调用模型编辑器的MySolution.Module项目。导航到视图| MySolution.Module.BusinessObjects | Contact_ListView节点。右键单击“过滤器”子节点,然后选择“新建” |“新建”。ListViewFilterItem。对于新节点,将Id属性设置为“ Development Department Contacts”。若要指定标准,请将“标准”属性设置为“ [[Department.Title] ='Development Department'””值。
该标准的属性值必须使用指定的标准语言的语法。为了简化此任务,您可以通过单击“条件”值右侧的省略号按钮()来调用“过滤器生成器”对话框。在此对话框中,您可以使用可视的Filter Builder设计条件表达式。
如上所述,将一个“过滤器”节点添加到“过滤器”节点。将Id属性设置为“ Developers”,将Criteria属性设置为“ Position.Title ='Developer'”。
为了能够在“列表视图”中查看所有Contact对象,请按照上面的定义在“过滤器”节点中再添加一个“过滤器”节点。将Id属性设置为“所有联系人”,然后将Criteria属性保留为空。
对于“过滤器”节点,将CurrentFilterID属性设置为“ Developers”。保存更改。
运行WinForms或ASP.NET应用程序,然后在导航控件中选择“联系人”项。请注意,SetFilter操作现在可用。
使用此方法通过模型编辑器过滤列表视图。最终用户无法更改在“模型编辑器”中应用的过滤器。
运行模型编辑器的MySolution.Module项目。导航到视图| MySolution.Module.BusinessObjects | Contact_ListView节点。将其Criteria属性设置为“ Position.Title ='Developer'”。
如果需要应用在运行时或通过模型编辑器不会更改的过滤器,请使用此方法。
用以下代码替换为Activated事件处理程序生成的代码。
using DevExpress.Data.Filtering;
using MySolution.Module.BusinessObjects;
// ...
public partial class FilterListViewController : ViewController {
// ...
private void FilterListViewController_Activated(object sender, EventArgs e) {
if ((View is ListView) & (View.ObjectTypeInfo.Type == typeof(Contact))) {
((ListView)View).CollectionSource.Criteria["Filter1"] = new BinaryOperator(
"Position.Title", "Developer", BinaryOperatorType.Equal);
}
}
}
Imports DevExpress.Data.Filtering
' ...
Partial Public Class FilterListViewController
Inherits ViewController
' ...
Private Sub FilterListViewController_Activated(ByVal sender As Object, ByVal e As EventArgs)
If (TypeOf View Is ListView) And (View.ObjectTypeInfo.Type Is GetType(Contact)) Then
CType(View, ListView).CollectionSource.Criteria("Filter1") = New BinaryOperator( _
"Position.Title", "Developer", BinaryOperatorType.Equal)
End If
End Sub
End Class
下一课: 将分组应用于列表视图数据