问题描述
当我点击某一列标题排序后,我怎么回到未排序状态(也就是初始状态,修改列的数据,不自动排序),不然修改列数据后自动排序了。我设置当前列的SortMode=DataGridViewColumnSortMode.Automatic;修改数据后还是自动排序。这个怎么弄
解决方案
解决方案二:
//遍历每一列禁止排序for(inti=0;i<dgvDemo.Columns.Count;i++)dgvDemo.Columns[i].SortMode=DataGridViewColumnSortMode.NotSortable;
解决方案三:
引用1楼的回复:
//遍历每一列禁止排序for(inti=0;i<dgvDemo.Columns.Count;i++)dgvDemo.Columns[i].SortMode=DataGridViewColumnSortMode.NotSortable;
貌似没用,我当前列是排序状态,禁用了所有列,修改数据后还是在自动排序
解决方案四:
privatevoiddataGridView1_ColumnHeaderMouseClick(objectsender,DataGridViewCellMouseEventArgse){DataGridViewColumnnewColumn=dataGridView1.Columns[e.ColumnIndex];DataGridViewColumnoldColumn=dataGridView1.SortedColumn;ListSortDirectiondirection;//IfoldColumnisnull,thentheDataGridViewisnotsorted.if(oldColumn!=null){//Sortthesamecolumnagain,reversingtheSortOrder.if(oldColumn==newColumn&&dataGridView1.SortOrder==SortOrder.Ascending){direction=ListSortDirection.Descending;}else{//SortanewcolumnandremovetheoldSortGlyph.direction=ListSortDirection.Ascending;oldColumn.HeaderCell.SortGlyphDirection=SortOrder.None;}}else{direction=ListSortDirection.Ascending;}//Sorttheselectedcolumn.dataGridView1.Sort(newColumn,direction);newColumn.HeaderCell.SortGlyphDirection=direction==ListSortDirection.Ascending?SortOrder.Ascending:SortOrder.Descending;}privatevoiddataGridView1_DataBindingComplete(objectsender,DataGridViewBindingCompleteEventArgse){//Puteachofthecolumnsintoprogrammaticsortmode.foreach(DataGridViewColumncolumnindataGridView1.Columns){column.SortMode=DataGridViewColumnSortMode.Programmatic;}}
解决方案五:
把排序前的table存到内存里,想恢复的时候重新绑定
解决方案六:
在页面上放一个隐藏的checkbox控件,点击排序时记住当前的状态。