代码之家  ›  专栏  ›  技术社区  ›  aleroot

设置datagridview的最后一行不可排序(始终在底部)

  •  3
  • aleroot  · 技术社区  · 14 年前

    目前,当我对datagridView的一列进行排序时,也会对摘要行进行排序,我不希望出现这种情况。我想保持DatagridView的最后一行(摘要行)不可排序。

    有办法吗?

    我找到了解决办法:

    我以这种方式重载了sortcompare方法:

      private void grid_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
        {
            try
            {
                if (e.RowIndex1 == this.dataGridView1.Rows.Count -1)
                    e.Handled = true;
                if (e.RowIndex2 == this.dataGridView1.Rows.Count - 1)
                    e.Handled = true;
                return;
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Dave Swersky    14 年前

    您可以向datatable中添加一列,并将所有非摘要记录的值设置为0。将summary record值设置为1,然后对“summary”列排序,然后对其他列排序。

    这可能在内存中执行得不好,因此如果可能,您可能希望在SQL查询中执行,具体取决于您使用的数据库。