【问题标题】:Stuck with datagridview and combo box column卡在 datagridview 和组合框列中
【发布时间】:2009-11-02 05:03:32
【问题描述】:

我有一个典型的需求。

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

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

谁能帮帮我

提前致谢

【问题讨论】:

  • 您能否确认您没有在每个 PostBack 处重新绑定 GridView?
  • 是的,请详细说明。您使用什么语言? (因为 dgv 我想你在 .Net 上)。而且,很可能您必须在代码后面执行此操作。

标签: c# .net winforms datagridview


【解决方案1】:

您的意思是您使用的是未绑定的组合框列吗?如果是这样,则刷新数据源时无法自动保留该值。您需要在更新之前存储选定的值,并在刷新后在代码中设置它。

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

那里的组合框是让用户为字段选择一个值,还是您将其用作在记录上执行命令的一种方式?

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

【讨论】:

    【解决方案2】:

    Datagrid Combo-Box 值将保留字符串值,但会自动刷新任何整数值。

    这是你需要做的:

    -当填充 Combo-Box 值以将其值转换为 toString()。 - 此外,如果您要设置默认选择值,也可以将其设置为字符串类型。

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

    :)

    【讨论】:

      【解决方案3】:

      在你的数据网格视图中有一个组合框。使用绑定源为其赋值。 然后为datagridviews“EditingControlShowing”事件编写一个事件处理程序。 其中,如果组合框 Selectedindexchanged 事件存在任何处理程序,则删除处理程序。然后为 selectedIndexChanged 事件添加一个事件处理程序,例如“ComboBoxValueChanged”

      在那个“ComboBoxValueChanged”中, DirectCast 发送方到 System.Windows.Forms.DataGridViewComboBoxEditingControl 并获取它的选定值。 现在用它来计算你想要的任何值。

      你可以参考这个 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxeditingcontrol.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多