不是对datagridview中的所有列进行排序
本文关键字:排序 datagridview | 更新日期: 2023-09-27 18:19:38
可以通过单击其中一个ColumnHeaderCell
对DataGridView
进行排序。但我希望一列,包含每行的索引,保持固定。
我的意思是,当我点击另一个列标题时,网格行应该根据该列的内容进行排序,除了包含行索引的第一列之外。
对不起!我不能发布图片!
如果您的意思是要中断行:不,如果不完全重新创建它们,就无法做到这一点。行是一个有列的单元,它们只能作为一个单元移动。
然而,如果你想让一列总是包含可见的行号,你只需要在每次排序后重新填充该列:
private void dataGridView1_Sorted(object sender, EventArgs e)
{
dataGridView1.SuspendLayout();
int yourindex = 0; // whichever column your index is at
foreach (DataGridViewRow row in dataGridView1.Rows)
row.Cells[yourindex].Value = row.Index;
dataGridView1.ResumeLayout();
}
注意:这样做将失去重新创建原始排序顺序的能力。这可能不是问题。如果是的话,你需要包括一个额外的列,叫做"key"或"old order"或其他什么。
试试这个
Int32 columnIndex = 1;// Index of the column you want as to be not sortable
DataGridView.Columns[columnIndex].SortMode = DataGridViewColumnSortMode.NotSortable;
并确保在填充数据后执行此操作。