请教 ComboBox 动态数据绑定的问题

异想天开的妄想狂 2006-06-21 05:49:17
请教

有三个ComboBox a ,b,c 都是动态数据绑定(从数据库读入)

要实现的效果是a 的某个选项触发SelectedIndexChanged事件 根据所选从数据库读入数据绑定到b, b根据所绑定的数据触发 SelectedIndexChanged事件 进而从数据库读入数据绑定C 

具体效果已经实现 但是发现当 a 有选项 但b 没有与a 匹配的数据时就有问题了,提示
“设置了dataSource 属性后无法修改项集合” ,同样b 有匹配数据而c无 也会有相同提示。

我的问题是 能不能做到 在a 选择后触发SelectedIndexChanged事件 进行数据搜索绑定到b时如果没有匹配数据则将b 的内容清空 只保留一条项目"没有配备项目" ?同理 c也一样。
或者是有无禁止 SelectedIndexChanged事件 发生的办法?

我是 C#新手,请赐教 谢谢!
...全文
829 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenqianlong 2006-07-04
  • 打赏
  • 举报
回复
将combox 的datasource设置为一个datatable,通过改变datatable里面的数据后,在运行一下
combox.datasource=dt;即可
江城老温 2006-07-03
  • 打赏
  • 举报
回复
网络上的虫子,帮你顶一下.
jason_mf 2006-07-02
  • 打赏
  • 举报
回复
其实else 不用写因该业可以得。
jason_mf 2006-07-02
  • 打赏
  • 举报
回复
你可以在一开始先将b,c设为不可用,
然后在a的SelectedIndexChanged事件中

根据a选项查询数据库可以得到一个影响行数 i ;
if (i>0)
{
b就可以执行绑定数据的操作;
并设为可用
}
else
{
Return;(什么都不用做,b保持不可用)
}
solsolsol 2006-07-01
  • 打赏
  • 举报
回复
问题是 如果发现返回的记录集为空 那如何对combobox绑定? 一使用清空的设置 
就会提示“设置了dataSource 属性后无法修改项集合” 



那么这个时候就不用数据源绑定了,只有直接向 combobox里写入一条信息 提示没有匹配记录
那么如何写入?
直接写会提示就会提示“设置了dataSource 属性后无法修改项集合” 

有没有办法解决

---------------------------------
可以在绑定后insert一条记录进去,WEB中对DROPDOWNLIST用过,combobox没经过测试
solsolsol 2006-07-01
  • 打赏
  • 举报
回复
//绑定罐组
private void BindGroupCom(string lCode)
{
CanGroup g = new CanGroup(connStr);
DataTable dt = g.GetDataFromLibrary(lCode);
this.GroupCom.DataSource = dt;
this.GroupCom.DisplayMember = "CCanGroupName";
this.GroupCom.ValueMember = "CCanGroupCode";
}

//联动绑定罐组
private void libCom_SelectedIndexChanged(object sender, System.EventArgs e)
{
BindGroupCom(this.libCom.SelectedValue.ToString());
}

你把我得到DATATABLE的方法换成你的方法就可以了
  • 打赏
  • 举报
回复
代码太多 牵扯的内容太乱
myminimouse 2006-07-01
  • 打赏
  • 举报
回复
ding
jason_mf 2006-06-29
  • 打赏
  • 举报
回复
把你的代码贴出来看一下呢
addwing 2006-06-29
  • 打赏
  • 举报
回复
关注。学习。帮你顶。。。。。。。。。。
wpater 2006-06-29
  • 打赏
  • 举报
回复
Re:可以根据a的selectIndexChanged 判断b的是否为空,问题是 如何让b 显示我想要的内容呢?
因为b没有匹配a的数据,如何让b显示提示信息?提示无记录匹配?c也一样。。。

根据a中选中的信息在绑定b的DataTable中Select,如果没有匹配记录的话,则提示“无满足条件的记录”,那么c同时也显示“无满足条件的记录”。
若b中有符合a的纪录那么就显示符合的纪录,而c中没有符合b选中项的纪录,那么只在c中提示“无记录”不就结了么。
Knight94 2006-06-28
  • 打赏
  • 举报
回复
to 可以根据a的selectIndexChanged 判断b的是否为空,问题是 如何让b 显示我想要的内容呢?
因为b没有匹配a的数据,如何让b显示提示信息?提示无记录匹配?c也一样。。。

你可以先通过DataTable绑定a,然后在其的SelectedIndexChanged事件中,判断当前行信息,然后根据某种关联关系,用DataTable进行select语句,看是否有数据,如果有的话,用同样的filter产生dataview,绑定b;否则向b插入提示信息。在b的SelectedIndexChanged事件中,判断b的值,用同样的方法去填充c。
  • 打赏
  • 举报
回复
没人知道么 ?要结帖了。。。



====CSDN 小助手 V2.5 2005年11月05日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2

  • 打赏
  • 举报
回复
可以根据a的selectIndexChanged 判断b的是否为空,问题是 如何让b 显示我想要的内容呢?
因为b没有匹配a的数据,如何让b显示提示信息?提示无记录匹配?c也一样。。。
wpater 2006-06-26
  • 打赏
  • 举报
回复
既然你的ComboBox是帮定数据源的(应该是DataTable吧?)。那你在a的SeletedIndexChanged事件中判断根据a选择的数据源(DataTable)是否为空不就行了么?
addwing 2006-06-26
  • 打赏
  • 举报
回复
关注,帮你顶,!!!!!!!
jiatong1981 2006-06-24
  • 打赏
  • 举报
回复
给ComboBox都加入DefaultValue,当返回的结果集为空时,只显示DefaultValue.
  • 打赏
  • 举报
回复
没办法解决么?
帮忙顶一下者有分送!
  • 打赏
  • 举报
回复
问题是 如果发现返回的记录集为空 那如何对combobox绑定? 一使用清空的设置 
就会提示“设置了dataSource 属性后无法修改项集合” 



那么这个时候就不用数据源绑定了,只有直接向 combobox里写入一条信息 提示没有匹配记录
那么如何写入?
直接写会提示就会提示“设置了dataSource 属性后无法修改项集合” 

有没有办法解决


jedliu 2006-06-22
  • 打赏
  • 举报
回复
判断,如果找不到匹配的数据,数据库返回的DataTable肯定为空,所以在查询后判断返回是否有数据即可!另外,在绑定时,先要清空控件的值。
加载更多回复(7)

110,533

社区成员

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

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

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