110,561
社区成员
发帖
与我相关
我的任务
分享
//我的DataGridView一共8列,第一列为序号列无需排序
void dgvList_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (this.dv.Table == null)
return;
if (this.dv.Table.Rows.Count > 0)
{
switch (e.ColumnIndex)
{
case 0:
break;
case 1:
this.ColumnHeaderOperate(this.dgvList.Columns[1].HeaderCell, "gdkh", 1);
break;
case 2:
this.ColumnHeaderOperate(this.dgvList.Columns[2].HeaderCell, "gdxm", 2);
break;
case 3:
this.ColumnHeaderOperate(this.dgvList.Columns[3].HeaderCell, "cyltggs", 3);
break;
case 4:
this.ColumnHeaderOperate(this.dgvList.Columns[4].HeaderCell, "zzltgbbl", 4);
break;
case 5:
this.ColumnHeaderOperate(this.dgvList.Columns[5].HeaderCell, "yybmc", 5);
break;
case 6:
this.ColumnHeaderOperate(this.dgvList.Columns[6].HeaderCell, "yybdz", 6);
break;
case 7:
this.ColumnHeaderOperate(this.dgvList.Columns[7].HeaderCell, "yyblxdh", 7);
break;
default:
break;
}
}
}
/// <summary>
/// 处理列表头点击排序
/// </summary>
/// <param name="dgvColumnHeader">控件列表头</param>
/// <param name="strColumnName">列的名称</param>
/// <param name="nIndex">列的索引</param>
private void ColumnHeaderOperate(DataGridViewColumnHeaderCell dgvColumnHeader, string strColumnName, int nIndex)
{
switch (dgvColumnHeader.SortGlyphDirection)
{
case SortOrder.None:
this.dv.Sort = strColumnName;
dgvColumnHeader.SortGlyphDirection = SortOrder.Ascending;
break;
case SortOrder.Ascending:
this.dv.Sort = strColumnName + " DESC";
dgvColumnHeader.SortGlyphDirection = SortOrder.Descending;
break;
case SortOrder.Descending:
this.dv.Sort = strColumnName;
dgvColumnHeader.SortGlyphDirection = SortOrder.Ascending;
break;
default:
break;
}
//一共8列,除了排序列,别的列标头恢复原始状态
for (int i = 0; i < 8; i++)
{
if (i != nIndex)
{
this.dgvList.Columns[i].HeaderCell.SortGlyphDirection = SortOrder.None;
}
}
this.dgvList.RowCount = this.dv.Table.Rows.Count;
this.dgvList.Refresh();
}