我的表单上有两个GridControl。一个是相当大的数据集,包括名为Score的列。我希望我的其他GridControl显示其中的一部分(例如,基于Score的值的前3和下3)。
我怎样才能做到最好?如果它是相同的GridControl,我想我可以使用不同的视图,但由于它是完全独立的,我应该只抓取视图的副本,过滤/排序数据并将其显示为新的数据集?或者有没有办法将我的第二个GridControl数据链接到我的第一个?
编辑:我可以grid2.datasource = grid1.datasource
从那里开始。表格不会有任何动态更新,所以这可能是最佳选择吗?
答案 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;
}
}