我的gridview
基于两个表的关系 - 表A的列大小(int)和表B的列人类的值(男人,女人)。我可以创建过滤器,过滤A.Size =“100”和B.Human =“man”,当我选择sourse
我的视图为A时,我想要这个过滤器 - 当我排序不看到哪些记录表B具有值“女人”,当我过滤时选择B作为视图sourse
- 不查看A中的值与“100”不同的记录。我可以创建这样的过滤器吗?如果是 - 在devExpress
的组件之间,这个过滤器视觉的适当表示是什么?我可以通过网格直接过滤来完成吗?
答案 0 :(得分:1)
据我所知,您的GridControl绑定到包含两个表的数据源。由于过滤器应用于GridView,并且每个GridView只能绑定到单个表,因此无法将此过滤条件应用于GridView。那么,有两种解决方案适合您。首先,我认为最好的是将此过滤器应用于网格的底层DataSource 其次是基于GridView过滤的解决方案。在这种情况下,您应该在主要和详细的GridView对象上应用单独的过滤器。即主gridView应具有以下过滤条件:
gridView1.ActiveFilterCriteria = new BinaryOperator("Size", 100);
要将过滤条件应用于详细GridView,请处理主GridView的MasterRowExpanded事件以获取详细的GridView对象并应用过滤条件:
private void gridView1_MasterRowExpanded(object sender, DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs e) {
GridView detailGridView = (sender as GridView).GetDetailView(e.RowHandle, e.RelationIndex);
detailGridView.ActiveFilterCriteria = new BinaryOperator("Human", "man");
}
注意:第一个解决方案是最好的解决方案。