2009-11-02 62 views
1

我有一个典型的要求。卡住datagridview和组合框列

我有一个combobox列的datagridview(项目在设计时加载)。当用户从组合框中选择一个项目时,剩余的行根据selectedItem在数据库中更新,并且dgv被刷新。

问题是组合框将失去其当前选择并进入未选状态。 即使在刷新dgv后,我也想保留所选项目。

谁能帮我提前

感谢

+0

你能证实你没有重新绑定每个PostBack的GridView吗? – 2009-11-02 05:11:01

+0

是的,请详细说明。你在用什么语言? (因为我认为你在.Net上的dgv)。 而且,很可能您必须在代码背后执行此操作。 – 2009-11-02 05:24:53

回答

1

你的意思是你使用的是未绑定comboboxcolumn?如果是这样,刷新数据源时,该值不能自动保持。您需要在更新之前存储选定的值,并在刷新后将其设置为代码。

如果您的列实际上是数据绑定,则所选值不会存储在数据库中,或者您有一些数据类型问题。

组合框是否允许用户为该字段选择一个值或者是否将其用作在记录上执行命令的方式?

你有任何可以发布的代码吗?

0

在你的datagridview中有一个组合框。使用绑定源为其分配值。 然后为datagridviews“EditingControlShowing”事件编写一个事件处理程序。 在那,删除有处理程序,如果有任何组合框Selectedindexchanged事件。然后添加一个事件处理SelectedIndexChanged事件说“ComboBoxValueChanged”

在“ComboBoxValueChanged”

, DirectCast发件人System.Windows.Forms.DataGridViewComboBoxEditingControl和获得它的设定值。 现在用它来计算你想要的任何值。

您可以WANA参照本 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxeditingcontrol.aspx

1

Datagrid的组合框的值将保留的字符串值,但会自动刷新任何整数值。

以下是你需要做的:

- 当填充组合框的值,只是它的值转换为toString()。 - 同样如果你正在设置一个默认选择值,也可以使用字符串类型进行设置。

- 即使刷新后,您的组合框也会自动保留所选值。

:)