1

我已经为此苦苦挣扎了一段时间,这让我发疯。这是这种情况:

我有一个有界的DataGridView,我与视觉工作室设计师一起设计了这个。所有信息都相应显示。

在我这里DataGridView有 2 个ComboBoxes数据也正确显示。如果我单击ComboBoxe选项列表显示,我想要那个。

因为DataGridView绑定到源我不能使用该ComboBox.Items.Add()方法。所以我在设计器中创建了另一个数据源,在运行时我更改了datasource那个特定的组合框。现在列表显示了我想要的选项,耶!

现在,我想将这个新添加或更改的行保存到数据库中。所以我为此使用以下方法(我RowLeave从事件中调用该方法DataGridView):

        if (tasksDataSet.HasChanges()
        {
            try
            {
                tasksBindingSource.EndEdit();
                tasksDataSet.GetChanges();
                tasksTableAdapter.Update(tasksDataSet);
            }
            catch (Exception ex)
            {

            }
         }

这不适用于,ComboBoxes因为这是另一个数据源。

所以基本上我想要的是:

  • 使用数据源DataGridView
  • 更改/添加项目到DataGridViewComboBox
  • 将对(完成)所做的更改保存DataGridView到数据库

我怎样才能使这项工作?

4

1 回答 1

1

如果您的问题是保存提供给网格视图的当前数据。比我建议尝试使用session。在将数据绑定到 DataSource 时,将其分配给 session["SomeID"] 。如果您更改绑定,则再次为其分配相同的会话。

下一步将会话转换为您想要保存的任何内容。

前任:

        //Datasource.
        list<User> DataBoundSource = new list<User>();

        DataGrid.DataSource = DataBoundSource;
        DataGrid.DatBind();
        //Assign to Session where you are binding this
        //every time
        Session["SameID"] = lsDataBoundSOurce;

        //your code.
        ...
        ...
        ...

        //covert that session to Datasource you want to save.

        list<User> saveData = (list<User>) Session["SameID"];

这是我得到的基本想法。我希望这会对你有所帮助。如果对您有帮助,请给 +1

于 2013-10-30T18:09:23.003 回答