如果像这样的网格
Name Age
Raj 20
Biny 19
Raj 17
Jose 27
Jose 15
现在我单击名称网格列手段
我想要像下面这样的输出
Name Age
Biny 19
Jose 15
Jose 27
Raj 17
Raj 20
See above table sort Based on Name column
例如:- 现在何塞年龄也排序为 15,27
我正在使用下面的代码,但它不能正常工作 private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{ var sortGlyph = dataGridView1.Columns["Name"].HeaderCell.SortGlyphDirection;
switch (sortGlyph)
{
case SortOrder.None:
case SortOrder.Ascending:
dataGridView1.Sort(dataGridView1.Columns["Name"], ListSortDirection.Descending);
dataGridView1.Columns["Name"].HeaderCell.SortGlyphDirection = SortOrder.Descending;
break;
case SortOrder.Descending:
dataGridView1.Sort(dataGridView1.Columns["Name"], ListSortDirection.Ascending);
dataGridView1.Columns["Name"].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
break;
}
}
下面的代码是上述问题的答案
switch (sortGlyph)
{
case SortOrder.None:
case SortOrder.Ascending:
dt.DefaultView.Sort = "Name,Age";
dt = dt.DefaultView.ToTable();
dataGridView1.DataSource = dt;
dataGridView1.Columns["Name"].HeaderCell.SortGlyphDirection =SortOrder.Descending;
break;
case SortOrder.Descending:
dt.DefaultView.Sort = "Name,Age";
dt = dt.DefaultView.ToTable();
dataGridView1.DataSource = dt;
dataGridView1.Columns["Name"].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
break;
}