【问题标题】:Sorting on databound gridview is not working在数据绑定的gridview上排序不起作用
【发布时间】:2015-02-20 15:23:17
【问题描述】:

我的 winForm 应用程序中有一个 datagridview 链接到实体模型。这是在datagridview中加载数据的代码:

var rawData = context.GetType().GetProperty(TableName).GetValue(context, null);
var truncatedData = ((IQueryable<object>)rawData).ToList();
crudBindingSource.DataSource = new BindingSource { DataSource = truncatedData };
dgvLoadTable.DataSource = crudBindingSource;
dgvLoadTable.Refresh();

现在我想在单击 columnHeader 时对数据进行排序。我试过这个:

private void dgvLoadTable_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
  DataGridViewColumn column = dgvLoadTable.Columns[e.ColumnIndex];
  DataGridViewColumn _sortColumn = null;
  bool isSortAscending = false;
  isSortAscending = (_sortColumn == null || isSortAscending == false);
  string direction = isSortAscending ? "ASC" : "DESC";
  crudBindingSource.DataSource = context.TableName.OrderBy(
  string.Format("it.{0} {1}", column.DataPropertyName, direction)).ToList();

  if (_sortColumn != null) _sortColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
    column.HeaderCell.SortGlyphDirection = isSortAscending ? SortOrder.Ascending : SortOrder.Descending;
   //exception here
  _sortColumn = column;
 }

但是,这是抛出异常:只能对属于 DataGridView 控件的单元格执行操作。我该怎么办?

【问题讨论】:

  • 启用时datagrid不是已经在进行排序了吗?您是否尝试进行一些自定义排序?
  • 不,它不会自行排序,我正在尝试手动操作
  • 您不需要实现自己的排序算法,尽量使数据源可排序。 This 可以帮到你。
  • 我觉得你需要学习一些东西,你的代码中有一些不必要的语句

标签: c# winforms datagridview


【解决方案1】:

只需使用你的datagridview的Sort方法,你就会得到:

DataGridViewColumn column = dgvLoadTable.Columns[e.ColumnIndex];
ListSortDirection direction = isSortAscending ? ListSortDirection.Ascending : ListSortDirection.Descending;

dgvLoadTable.Sort(column, direction);

【讨论】:

  • 你可以写 SortAscending.checked(radiobutton) 而不是我们不知道如何分配它的变量(根据发布它是在 mouseclick 事件中分配的)
  • DataGridView控件绑定到不支持排序的IBindingList时无法排序
  • 这是上一篇与DataGridView排序相关的帖子的链接link
猜你喜欢
  • 2012-09-02
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 1970-01-01
相关资源
最近更新 更多