0

我有一个数据网格,我必须混合填充

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

数据表;

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

数据绑定数据网格视图不能使用 Sort() 进行排序,也不能使用 DataTable 的 Sort 方法(或者我可以放在中间的 DataView),因为我有额外的数据。
我被这个困住了...

4

1 回答 1

1

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

于 2012-10-19T14:46:58.797 回答