【问题标题】:Data sorting Generic Datagridview数据排序通用 Datagridview
【发布时间】:2017-12-29 16:54:19
【问题描述】:

我在这里找到了这个关于使用通用列表对数据网格进行排序的好例子,但是我只处理列表中的 2000 条记录似乎很慢。

C# DataGridView sorting with Generic List as underlying source

在排序中似乎也不能很好地处理字符串,没有人知道我如何能够使用下面的 linq 获得更好的结果。

我在 winforms 中使用 datagridview 我现在没有 winforms 但不是我选择的现有应用程序。

 private void dgProducts_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
 {
     var compareList = (dgProducts.DataSource as List<StockM>);
     string strColumnName = dgProducts.Columns[e.ColumnIndex].Name;
     SortOrder strSortOrder = getSortOrder(e.ColumnIndex);

     if (strSortOrder == SortOrder.Ascending)
     {
         _allstock = _allstock.OrderBy(x => typeof(StockM).GetProperty(strColumnName).GetValue(x, null)).ToList();
      }
       else
      {
         compareList = compareList.OrderByDescending(x => typeof(StockM).GetProperty(strColumnName).GetValue(x, null)).ToList();
      }

    dgProducts.DataSource = compareList;
    dgProducts.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = strSortOrder;

}

【问题讨论】:

    标签: c# winforms linq datagridview


    【解决方案1】:

    事实证明,如果您查看我的代码,它会按降序排列,我没有正确设置我的列表。

    private void dgProducts_ColumnHeaderMouseClick(object sender, 
    DataGridViewCellMouseEventArgs e)
    {
     var compareList = (dgProducts.DataSource as List<StockM>);
     string strColumnName = dgProducts.Columns[e.ColumnIndex].Name;
     SortOrder strSortOrder = getSortOrder(e.ColumnIndex);
    
     if (strSortOrder == SortOrder.Ascending)
     {
         _allstock = _allstock.OrderBy(x => typeof(StockM).GetProperty(strColumnName).GetValue(x, null)).ToList();
      }
       else
      {
         compareList = compareList.OrderByDescending(x => typeof(StockM).GetProperty(strColumnName).GetValue(x, null)).ToList();
      }
    
    dgProducts.DataSource = compareList;
    dgProducts.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = strSortOrder;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2016-12-05
      • 2013-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多