禁用列上的排序功能?

时间:2015-01-07 18:40:42

标签: c# datatable

我在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。

2 个答案:

答案 0 :(得分:1)

这是一个更强大的例子。我在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;
        }

希望这有帮助。

:)大卫

答案 1 :(得分:1)

“AllowUserToOrderColumns”与排序数据无关,它确定是否允许用户重新排列网格中的列。您可以通过将各列“SortMode”设置为

来禁用对某些网格列的排序

myDataGridViewTextBoxColumn.SortMode = DataGridViewColumnSortMode.NotSortable