我將服務器模式下的GridControl綁定到類數組(List<Product>
)。數據部分來自數據庫,這意味着ID從數據庫中獲取,但隨後轉換爲代碼中的名稱(附加只讀屬性)。將DevExpress GridControl按其他列排序
網格顯示名稱,而不是ID。但是,當我點擊網格標題時,我想按ID排序,即如果我點擊「產品標題」標題,我實際上是想按「產品ID」進行排序。
我如何做到這一點?
我將服務器模式下的GridControl綁定到類數組(List<Product>
)。數據部分來自數據庫,這意味着ID從數據庫中獲取,但隨後轉換爲代碼中的名稱(附加只讀屬性)。將DevExpress GridControl按其他列排序
網格顯示名稱,而不是ID。但是,當我點擊網格標題時,我想按ID排序,即如果我點擊「產品標題」標題,我實際上是想按「產品ID」進行排序。
我如何做到這一點?
您可以嘗試對列表進行排序。
嘗試以下操作:
myDataSource.Sort((x,y) => x.ProductID.CompareTo(y.ProductID));
myGridView.RefreshData();
簡單的解決方案:
添加ID column
在網格視圖DataSource和按照鏈路來實現網格中的排序。有很少的方法來實現這一點。 您可以使用Sorting
也:
grid.Columns["ID"].SortOrder = ColumnSortOrder.Ascending;
或如下使用Custom Sorting
:
Sorting Modes and Custom Sorting
grid.ItemsSource = your list datasource;
grid.PopulateColumns();
grid.Columns[0].SortMode = ColumnSortMode.Custom;
grid.SortBy(grid.Columns[0]);
然後處理GridControl.CustomColumnSort Event:
private void grid_CustomColumnSort(object sender, CustomColumnSortEventArgs e) {
e.Result = Comparer<int>.Default.Compare(e.ListSourceRowIndex1,
e.ListSourceRowIndex2);
e.Handled = true;
}
Downvoter護理評論,讓其他可以得到什麼是錯的解決方案? – 2014-10-14 06:01:05