rei*_*jin 5 c# sorting datagridview datagridviewcolumn
我有一个小问题。我需要保存排序(按列和升序或降序)并在程序下次启动时加载它。获取当前选定的列没有问题我通过以下方式执行此操作
private int GetSortColumn()
{
DataGridViewColumn sortColumn = this.dataGridView.SortedColumn;
if (sortColumn != null)
{
Properties.Settings.Default.sortingColumnSortMode = dataGridView.SortOrder;
return sortColumn.Index;
}
else
//error
return -1;
}
Run Code Online (Sandbox Code Playgroud)
并将数据保存在我的设置中。设置这个属性也没有问题:
private void SetSortColumn(int indexOfColumn)
{
if (indexOfColumn != null && indexOfColumn != -1)
{
this.dataGridView.Sort(this.dataGridView.Columns[indexOfColumn], ListSortDirection.Descending);
}
}
Run Code Online (Sandbox Code Playgroud)
但我还需要保存并设置升序或降序属性。我该怎么做呢?有没有办法使用 dataGridView.SortedColumn 获取 ListSortDirection?或者如果dataGridView按升序或降序排序,是否有更好的解决方案?
谢谢和问候!礼金
我不知道这是否仍然相关,但这看起来是一种更简单的方法:)
if(gridView1.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == System.Windows.Forms.SortOrder.Descending)
{
// you can ascending if you want
gridView1.Sort(gridView1.Columns[e.ColumnIndex], ListSortDirection.Ascending);
}
else
{
// you can descending if you want
gridView1.Sort(gridView1.Columns[e.ColumnIndex], ListSortDirection.Descending);
}
Run Code Online (Sandbox Code Playgroud)
好的,我只需在 SetSortColumn 中添加一个开关即可解决我的问题:
private void SetSortColumn(int indexOfColumn)
{
if (indexOfColumn != null && indexOfColumn != -1)
{
ListSortDirection listSort;
switch (Properties.Settings.Default.sortingColumnSortMode)
{
case SortOrder.Ascending:
listSort = ListSortDirection.Ascending;
break;
case SortOrder.Descending:
listSort = ListSortDirection.Descending;
break;
default:
listSort = ListSortDirection.Descending;
break;
}
this.dataGridView.Sort(this.dataGridView.Columns[indexOfColumn], listSort);
}
}
Run Code Online (Sandbox Code Playgroud)
也许它会帮助其他人;)
| 归档时间: |
|
| 查看次数: |
9328 次 |
| 最近记录: |