DataGridView(部分)数据绑定自定义排序

时间:2012-10-19 13:24:37

标签: c# sorting datagridview

我有一个数据网格,我必须填写

  • 使用代码
  • 动态创建的列
  • 用于从查询中检索数据的动态列(动态,自然)

DataTable表;

using (SqlDataReader dr = cmd.ExecuteReader())
{
    table.Load(dr);

    // Insert row number column
    DataGridViewTextBoxColumn rowColumn = new DataGridViewTextBoxColumn()
    {
        HeaderText = "Row",
        Width = 40,
        ReadOnly = true,
        Frozen = true
    };
    dgv.Columns.Insert(0, rowColumn);

    // Insert grouping column
    DataGridViewComboBoxColumn groupColumn = new DataGridViewComboBoxColumn()
    {
        HeaderText = "Grouping",
        Width = 70,
        DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox,
        FlatStyle = System.Windows.Forms.FlatStyle.Flat,
        Frozen = true
    };
    groupColumn.Items.AddRange(new object[] { "-", "Group 1", "Group 2"});
    dgv.Columns.Insert(1, groupColumn);

    // Populate row & grouping columns
    .................

    dgv.DataSource = table;
}   

DataGridView充满了所需的数据,用户可以改变他想要的一切 最后,我需要根据列编辑值的修改内容对行进行排序(创建的值和数据绑定值):我该怎么做?

数据绑定datagridviews不能使用Sort()进行排序,也不能使用DataTable的Sort方法(或者我可以放在中间的DataView),因为我有额外的数据。
我坚持这个......

1 个答案:

答案 0 :(得分:1)

在表格中添加列而不是数据网格视图。 这将使列数据绑定而不是“手动”创建它。 然后将列转换为组合框列,请查看此SO链接: How to change a datagridview cell style from the default textbox to combobox in vb.net?