禁用列上的排序功能

本文关键字:排序 功能 | 更新日期: 2023-09-27 18:36:42

我正在用 C# 生成一个 DataTable,我需要禁用通过代码对列进行排序。代码如下所示:

DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add("File_Name");
dt.Columns.Add("Create_Date");
dt.Columns.Add("Status");
dr = dt.NewRow();
dataGridView1.DataSource = dt;

如何做到这一点?我确实检查了类似dt.SortMode = <something disabled>的东西,但到目前为止,在数据元素上没有找到任何 SortOrder。

禁用列上的排序功能

这是一个更可靠的示例。我在Windows表单应用程序(.NET 4.5,VS 2012)中对此进行了测试。

        DataTable dt = new DataTable();
        dt.Columns.Add("File_Name");
        dt.Columns.Add("Create_Date");
        dt.Columns.Add("Status");
        DataRow dr = dt.NewRow();
        dr["File_Name"] = "abc.txt";
        dr["Create_Date"] = DateTime.Now;
        dr["Status"] = "Pending";
        dt.Rows.Add(dr);
        dr = dt.NewRow();
        dr["File_Name"] = "xyz.bmp";
        dr["Create_Date"] = DateTime.Now;
        dr["Status"] = "Complete";
        dt.Rows.Add(dr);
        dataGridView1.DataSource = dt;
        foreach (DataGridViewColumn col in dataGridView1.Columns)
        {
            col.SortMode = DataGridViewColumnSortMode.NotSortable;
        }

希望这有帮助。

:)大卫

"AllowUserToOrderColumns"与数据排序无关,它确定是否允许用户重新排列网格中的列。您可以通过设置相应列的排序模式来禁用对某些网格列进行排序

myDataGridViewTextBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable