C# Devexpress-如何建立Gridcontrol';从另一个GridControl排序/筛选的数据上的s数据?
我的窗体上有两个GridControl。一个是相当大的数据集,包括一个名为Score的列。我希望我的另一个GridControl显示其中的一个子集(例如,基于分数的前3名和后3名) 我如何才能最好地完成这一点?如果它是同一个GridControl,我想我可以使用不同的视图,但是因为它是完全独立的,我应该只获取视图的副本,过滤/排序数据并将其显示为新的数据集吗?或者有没有办法将第二个GridControl的数据链接到第一个GridControl的数据C# Devexpress-如何建立Gridcontrol';从另一个GridControl排序/筛选的数据上的s数据?,c#,devexpress,gridcontrol,C#,Devexpress,Gridcontrol,我的窗体上有两个GridControl。一个是相当大的数据集,包括一个名为Score的列。我希望我的另一个GridControl显示其中的一个子集(例如,基于分数的前3名和后3名) 我如何才能最好地完成这一点?如果它是同一个GridControl,我想我可以使用不同的视图,但是因为它是完全独立的,我应该只获取视图的副本,过滤/排序数据并将其显示为新的数据集吗?或者有没有办法将第二个GridControl的数据链接到第一个GridControl的数据 编辑:我可以做grid2.datasource
编辑:我可以做
grid2.datasource=grid1.datasource
并从那里开始。表将不会有任何动态更新,因此可能这就是解决方法?我将使用以下方法:
1) 创建一个新的DataView,根据您的方法对其进行过滤,并将第二个gridControl的数据源设置为此DataView
或
2) 将第二个GridControl的DataSource属性设置为相同的值,并过滤相应的GridView。无需创建新的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;
}
}
gridView\u自定义行过滤器(对象发送方,行过滤器eventargs e)
{
if(dataset.datatable[e.ListSourceRow][“ColumnName”]<25)
{
e、 可见=假;
e、 已处理=正确;
}
}
那么基本上您想在另一个网格中显示过滤后的值吗?是的。我可以想出几种不同的方法来实现这一点,我只是不知道Devexpress是否提供了一种内置的方法来有效地实现这一点。是的,它有内置的过滤机制。检查我的答案。这会在两个网格控件之间工作吗?我是否可以将dataset.datatable
指向原始网格的数据源,并在第二秒内动态完成过滤?这将对“n”个网格控件起作用。这与底层数据源无关。可以将“n”个网格绑定到同一数据源。每个GridControl都有自己的gridView。所以每个gridview都可以独立筛选行。好的,谢谢。所以本质上,这类似于将第二个网格绑定到同一个数据源并独立进行过滤的建议。我将尝试两种建议的方法,并标记我使用的方法,但它们都很好知道!