Devexpress - 如何将Gridcontrol的数据基于另一个GridControl的已排序/过滤数据?

时间:2011-06-16 09:39:59

标签: c# devexpress gridcontrol

我的表单上有两个GridControl。一个是相当大的数据集,包括名为Score的列。我希望我的其他GridControl显示其中的一部分(例如,基于Score的值的前3和下3)。

我怎样才能做到最好?如果它是相同的GridControl,我想我可以使用不同的视图,但由于它是完全独立的,我应该只抓取视图的副本,过滤/排序数据并将其显示为新的数据集?或者有没有办法将我的第二个GridControl数据链接到我的第一个?

编辑:我可以grid2.datasource = grid1.datasource从那里开始。表格不会有任何动态更新,所以这可能是最佳选择吗?

2 个答案:

答案 0 :(得分:1)

我会使用以下方法:

1)创建一个新的DataView,根据您的方法对其进行过滤,并将第二个gridControl的DataSource设置为此DataView;

OR

2)将第二个GridControl的DataSource属性设置为相同的值并过滤相应的GridView。

答案 1 :(得分:1)

无需创建新的DataView。查看gridview的CustomRowFilter事件。

使用e.ListSourceRow获取数据表中的行。

因此,假设您想要具有值>的行; 25显示,其余隐藏

gridView_CustomRowFilter(object sender, RowFilterEventArgs e)
{
      if(dataset.datatable[e.ListSourceRow]["ColumnName"] < 25)
      {  
          e.visible = false;
          e.handled = true;
      }
}