问题标签 [datagridviewcombobox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
517 浏览

winforms - 对象引用未设置为 DataGridView 的 InitializeEditingControlValue 中的对象实例

我有一个 DataGridView,在一个包含项目列表的 ComboBox 单元格内。当我们点击其中一个项目时,我会在我的主窗口中显示这些“项目”的内容。但是,如果用户单击小箭头来选择一个项目,但最后没有选择任何项目,我得到一个 NullReferenceException(对象引用未设置为对象的实例)。

我在 Google 上发现了一些东西,说我需要实现自己的 ComboBoxCell(或列),但我发现的唯一例子比我得到的更糟糕。

为了您的信息,我在 DataBindingComplete 中填充了 ComboBoxCell 的项目,我将值放在了 RowPrePaint 中。是的:每个 ComboBoxCell 都有不同的“项目”列表。

请帮助找到解决方案。

PS如果有人能解释我们为什么我有这个问题......

0 投票
1 回答
996 浏览

c# - DataGridViewComboBox 索引更改事件故障

希望有人可以帮助解决这个问题。我的代码中有一个无法修复的错误。我正在使用带有 DataGridView 控件的选定索引事件处理进行测试。

我创建了两列:-

第 0 列是DataGridViewTextBoxColum 第 1 列是DataGridViewComboBoxColumn

我给了我的ComboBoxColumn 一个数据源,它很小DataTable,由两个Username&列组成UserID

显示成员设置为用户名列,我将用户 ID 列设置为值成员。

我要做的只是第 0 列( ),在索引更改事件中DataGridViewTextBox填充UserID( ) 。ValueMemberDataGridViewComboBoxColumn

当我第一次加载程序时它工作正常。事件IndexChanged触发没有任何错误。但是,如果我尝试ComboBox在新行中选择 ,它会从上一行清除组合框中的值,然后抛出空引用异常。

我列出了下面的代码并突出显示了它失败的代码行:-

0 投票
1 回答
1084 浏览

vb.net - Datagridview 绑定到对象 - 使新行显示为空白

我有一个 Datagridview,它根据用户在列表框中所做的选择来更改其内容。DGV 由 2 个组合框(国家、产品)和 1 个文本框(数量)组成。

我创建了一个由 3 个整数组合而成的类。此类用作列表类型,它是 DGV 的数据源。还有另一个包含先前列表的列表,所以我有一个数据源列表。

DGV 的数据源是一个 BindingSource,只要触发 listBox 的 SelectedIndex,它就会发生变化。

每当将新行添加到 DGV 时,就会出现我的问题:我使用调用类的构造函数的 BindingSource.AddNew,但它必须为类中的每个项目分配值。这样,每当我单击 DGV 中的任何单元格时,我都不会得到空白行。而且,当BS改变然后返回时,又增加了一行。

我想要的是一个空白行 - 空的组合框和文本框。

谢谢你的帮助!

班上:

创建一个新的内部列表:

SelectedIndexChanged 事件:

0 投票
3 回答
462 浏览

sql-server - 提交到数据库时,datagridview 组合框列是否会影响速度?

我有一个名为 frmTransaction 的表单,它有 txtTranNo、txtCustCode、dtbDate、txtRemarks、txtTotalAmount,还有一个名为 dtgDetail 的 datagridview。

在 dtgDetail 中,我有 cTranNo、nLineID、cProductID、nQty、nPrice 和 nAmount 列。

cProductID 是一个组合框列,它有一个数据成员 cProduct 和一个显示成员 cDescription,因此当它运行时,用户将看到产品名称而不是其产品代码。

但是我的产品有 2000 条记录,当我加载表单时速度很慢。将其保存/提交到我的数据库时也很慢。

我认为 cProduct 列与我的表单速度有关。这是真的?我怎样才能加快速度?

编辑

我可以展示代码,但如果我只是解释我的代码是如何工作的,它就不会那么混乱了。在我的设计时,我的 datagridview 有空列。datagridview 的名称也是将要绑定的表的名称,当我运行它时,它会创建它的列,该列会根据表的模式自动绑定。我还有一个标志,告诉程序该字段是组合框列还是纯文本框。如果它是一个组合框列,它将生成一个 sql 脚本,并运行并将结果保存到一个数据表中,该数据表将作为组合框的数据源。组合框列的数据成员和显示成员也由标志确定。

建议我不要在我的脚本中为我的组合框列的数据源设置任何条件。

编辑 - 12 年 5 月 12 日 我尝试在将我的 sql 数据源绑定到 datagridview 组合框列时对其进行过滤......我会说我有助于加快我的表单。我现在的问题是当我在我的 datagridview 中添加不包含在组合框中的新记录时。例如,我将把这个脚本绑定到我的datagridview,“select ID,Desc from product where ID in (1,2,3,4,5)”。当我在 ID = 6 的 datagridview 中插入新记录/项目/产品时,它不会显示描述 datagridview ...

0 投票
1 回答
1570 浏览

backbone.js - Backbone.js 如何在表格列表中选择组合框选项?

我在列表表模板中添加了一个组合框

所以我的 chk 模型是;

但现在我收到这样的错误;

那我该怎么办?

0 投票
1 回答
3264 浏览

c# - DataGridView 与组合框列显示 System.Data.DataRowView 而不是 DisplayMember

我正在使用 C# 4.0 WinForms。我有一个 DataGridView,它的所有列都在设计器中设置。“房间”列是 DataGridViewComboBoxColumn 列。

所有单元格都显示正确的信息,包括房间列。但是,当我单击 Room 的 DropDown 时,列表中的项目会显示一定数量的行,这些行显示 System.Data.DataRowView 而不是 DisplayMember 属性的实际值。

我的代码如下所示:

我已经定义了一个 RoomType 类,如下所示:

如果我更改数据库中某个项目的房间,它会按预期正确显示在 GridView 组合框列上。

我已经设置了列的 DisplayMember 和 ValueMember。但是当我下拉下拉菜单来更改值时,行数是正确的,但它们似乎忽略了它们的 DisplayMember 属性。我已经尝试了很长一段时间来弄清楚我做错了什么。我花了好几个小时在 SO 上查看所有类似的问题,并尝试了几乎所有的东西。

0 投票
0 回答
97 浏览

c# - 从 DataGridViewComboBoxColumn 为 DataGridView 的源的基础属性赋值

我有一个分配给 CustomerPricing 的 BindingList 的 datagridview,在 CustomerPricing 中有诸如产品名称、价格、所需数量以及该项目是否应纳税等字段。在 datagridview 中,我有一个 DataGridViewComboBoxColumn,它的数据源是一个产品列表。产品具有名称、价格以及是否应纳税的字段。

客户的愿望是,一旦选择了产品,价格值会自动显示在 DataGridView 中,并且从开发人员的角度来看,Taxable 属性也会更新(不会显示)。

有谁知道如何做到这一点?我尝试使用 EditControlShowing 事件并将值直接分配给单元格,但这无助于更新未显示的基础对象的属性。我做了一个 hack,它可以工作,但速度很慢,只有在没有更可接受的方式时才愿意使用。

谢谢

0 投票
1 回答
1053 浏览

winforms - DataGridViewComboBoxColumn 设置选中索引

我只是不能让它工作。我在 winforms 中有一个 datagridview,在我的这一列中是一个 DataGridViewComboBoxColumn。

在我的构造函数中,我像这样设置它

它实际上运行良好,只是在我想要的下拉框中没有选择任何内容。我已经用谷歌搜索了这个,例如尝试了这种方法: http: //goo.gl/kBy8W但没有成功,因为 EditingControlShowing 仅在我单击该框时发生,而不是在它第一次出现时发生(因此我可以设置选定的索引一旦它被点击但那不好)。CellFormatting 版本至少会更改值,但它只是将一个字符串放在那里,而不是我的数据源中的第一个索引。

我也试过这个

这似乎有效,但是当我在下拉列表中选择第一个索引时(所以下拉下拉列表,然后选择第一个索引,然后取消选择单元格)我从 ParseFormattedValue 收到一个错误,它说它不能将“值”转换为系统.字符串。

这似乎是在正确的轨道上,但我无法让它工作:http: //goo.gl/VevA3

0 投票
1 回答
203 浏览

c# - 如何在 DataGridView 中对组合框列进行数据绑定?

我的情况如下:

我挑战了一个名为“学生”的课程,它很简单,如下所示:

然后我定义了一个List<Student>叫做studentList.

我怎样才能将它studentList与 a结合起来DataGridView?中的第二列DataGridView应该是一个组合框,列出学生的所有科目。

0 投票
2 回答
1007 浏览

c# - 更改 Telerik GricViewComboBox 追加列表字体

我有一个带有组合框列的 Telerik GridView,同时在这个组合框中过滤一个下拉的附加列表。

和下图一样...

在此处输入图像描述

所以我想让附加列表的字体更大。

怎么做?