繁体   English   中英

按其他列对DevExpress GridControl进行排序

[英]Sorting DevExpress GridControl by other column

我将服务器模式下的GridControl绑定到一个类数组( List<Product> )。 数据部分是从数据库中获取的,这意味着ID是从数据库中获取的,但随后会转换为代码中的名称(其他只读属性)。

网格显示名称,而不是ID。 但是,当我单击网格标题时,我想按ID排序,即,如果单击“产品标题”标题,则实际上要按“产品ID”排序。

我怎么做?

您可以尝试对列表进行排序。

请尝试以下操作:

myDataSource.Sort((x,y) => x.ProductID.CompareTo(y.ProductID));
myGridView.RefreshData();

简单的解决方案:

在Grid View数据源中添加ID column ,然后单击链接以在网格中实施排序。 几乎没有办法实现这一目标。 您还可以使用Sorting

grid.Columns["ID"].SortOrder = ColumnSortOrder.Ascending;

或使用“ Custom Sorting ,如下所示:

排序模式和自定义排序

grid.ItemsSource = your list datasource;
grid.PopulateColumns();
grid.Columns[0].SortMode = ColumnSortMode.Custom;
grid.SortBy(grid.Columns[0]);  

然后处理GridControl.CustomColumnSort事件

private void grid_CustomColumnSort(object sender, CustomColumnSortEventArgs e) {
    e.Result = Comparer<int>.Default.Compare(e.ListSourceRowIndex1,
        e.ListSourceRowIndex2);

    e.Handled = true;
}

参考文献:
按代码排序
如何:实施自定义排序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM