0

我遇到了一些奇怪的事情,或者可能是它的工作方式,只是我对 datagridview 的工作方式缺乏了解。单击按钮时,我正在动态添加一列

    private void btnAssign_Click(object sender, EventArgs e)
    {
        if (!gvData.Columns.Contains("DepartmentId"))
        {
            DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();
            DataGridViewColumn dc = new DataGridViewColumn();
            dc = new DataGridViewTextBoxColumn();
            dc.HeaderText = "DepartmentId";
            dc.Name = "DepartmentId";
            dc.CellTemplate = cell;
            gvData.Columns.Add(dc);
        }
        foreach(DataGridViewRow row in gvData.SelectedRows)
        {
            row.Cells["DepartmentId"].Value = getSelectedValues(clbDept);
        }
    }

首先它检查 DepartmentId 列是否在 datagridview (dgv) 中。如果没有,那么我创建一个新的 Datagridviewtextboxcolumn 并设置适当的设置。然后将值添加到单元格。到目前为止一切顺利......这在哪里做奇怪的事情......当我对另一列进行排序时,“DepartmentId”列中的数据消失了。数据消失在我动态创建的列中。我必须使用保存方法吗?

4

1 回答 1

0

您需要将列添加到数据源并将数据源重新分配给 datagridview,而不是将数据直接添加到 datagridview。这将解决您的排序问题。

于 2013-08-15T15:48:32.110 回答