C#中DataGridView点击列头排序问题 我的这段代码怎么就不能实现“点击dgv列头就换升降序”排呢 请大侠指教

[复制链接]
查看11 | 回复1 | 2015-4-25 08:51:18 | 显示全部楼层 |阅读模式
private void dgvSalaryForPerformance_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)

{

if (_columnIndex == e.ColumnIndex)

{

if (_sortDirection == 0)

{

_sortDirection = 1;

}

else

{

_sortDirection = 0;

}

}

else

{

_columnIndex = e.ColumnIndex; //记录列索引

_sortDirection = 0;
//设为升序标记

}

//重新给Dgv排序

RefreshDataGridView(this.dgvSalaryForPerformance, _sortDirection);

}

#endregion

#region 刷新dgv数据源 以重新排序

private void RefreshDataGridView(DataGridView dgv, int sortdirection)

{

if (dgv.DataSource == null)

{

return;

}

//DataGridViewColumn sortColumn = this.dgvSalaryForPerformance.Columns[_columnIndex];

DataGridViewColumn sortColumn = dgv.SortedColumn;

CurrencyManager cmdgv = (CurrencyManager)this.BindingContext[dgv.DataSource];

if (cmdgv != null)

{

cmdgv.Refresh();
//刷新数据源

}

if (sortColumn != null)

{

if (sortdirection == 0)

{

ListSortDirection sortDirection = ListSortDirection.Ascending;

dgv.Sort(sortColumn, sortDirection);

}

if (sortdirection == 1)

{

ListSortDirection sortDirection = ListSortDirection.Descending;

dgv.Sort(sortColumn, sortDirection);

}

}

}

回复

使用道具 举报

千问 | 2015-4-25 08:51:18 | 显示全部楼层
参考答案:欲速则不达,见小利则大事不成。(论语)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行