DataGridView Combox 每行绑定不同的数据源:高人现身吧

xmbily 2010-01-18 09:22:32
DataGridView中:
1、第1列和第2列都是一个Combox
2、第1列在初始化的时候就绑定了值。第2列没有绑定值。
要求:根据第1列的选定值,到数据库取得数据后绑定数据到第2列。因此每行的第2列数据都不同。

问题:第1行1列选择一个值后,会自动新增第2行,并且第2行2列与第1行有相同的Item.
错误:第2行1列选择不同于第1行1列的值后,
"System.ArgumentException: DataGridViewComBoxCell 值无效
要替换此默认对话框,请处理DataError事件"
...全文
478 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wniupty 2011-06-16
  • 打赏
  • 举报
回复
怎么不能按楼上的解决啊。。
xmbily 2010-01-20
  • 打赏
  • 举报
回复
研究出来了:
原因:每行的ComBox必须类型相同。
解决:在每行的ComBox中增加一个空格.
DataGridViewComboBoxCell cb = (DataGridViewComboBoxCell)gvList.Rows[Rows].Cells[4];
foreach (DataRow dr in dt.Rows)
{
cb.Items.Add(dr[0]);
}
cb.Items.Add(" ");
xmbily 2010-01-18
  • 打赏
  • 举报
回复
请再看看我的提问:
选择第1列后,是根据第1列的数来绑定第2列的数据。目的是防呆,不能全部带出来。
zhushoudong 2010-01-18
  • 打赏
  • 举报
回复
却时候 你设置每个列的字段数据源不就得了
  • 打赏
  • 举报
回复
你把问题上溢了。简单的说,不同的数据源应该是指你后台的数据来源,不应该是UI访问的部份。
思路是你在数据处理层将这些不同的数据源整合成统一的数据表达,提供给UI。
看来你的老师很是会误人嘛。赫赫。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧