请教有三个ComboBox a ,b,c 都是动态数据绑定(从数据库读入)要实现的效果是a 的某个选项触发SelectedIndexChanged事件 根据所选从数据库读入数据绑定到b, b根据所绑定的数据触发 SelectedIndexChanged事件 进而从数据库读入数据绑定C 具体效果已经实现 但是发现当 a 有选项 但b 没有与a 匹配的数据时就有问题了,提示
“设置了dataSource 属性后无法修改项集合” ,同样b 有匹配数据而c无 也会有相同提示。我的问题是 能不能做到 在a 选择后触发SelectedIndexChanged事件 进行数据搜索绑定到b时如果没有匹配数据则将b 的内容清空 只保留一条项目"没有配备项目" ?同理 c也一样。
或者是有无禁止 SelectedIndexChanged事件 发生的办法?我是 C#新手,请赐教 谢谢!
“设置了dataSource 属性后无法修改项集合” ,同样b 有匹配数据而c无 也会有相同提示。我的问题是 能不能做到 在a 选择后触发SelectedIndexChanged事件 进行数据搜索绑定到b时如果没有匹配数据则将b 的内容清空 只保留一条项目"没有配备项目" ?同理 c也一样。
或者是有无禁止 SelectedIndexChanged事件 发生的办法?我是 C#新手,请赐教 谢谢!
解决方案 »
- winform的treeview怎么在页面加载的时候只打开二级节点
- 请问这样编写会不会不对?有意义?性能方面?。。。
- c# 实现复制粘贴功能,求解!
- 请问下面代码中+=是什么意思
- c#编写的form程序,在别的机子不能运行??
- 怎样做深度拷贝?
- c/s客户端应用程序和mssql远程服务器的部署问题
- C#连接不上SQL SERVER 2000
- C#中如何把数据封装到byte流中呢?具体数据见帖子里面的.主要是针对联通短信SGIP的开发
- .net如何读取json数据
- 未能找到元素“http://schemas.microsoft.com/.NetConfiguration/v2.0:configuration”的架构信息。
- 实现在程序中调用水晶报表的设计器功能:_)
http://singlepine.cnblogs.com/category/42511.html
http://singlepine.cnblogs.com/articles/265678.html
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
private void Form1_Load(object sender, System.EventArgs e)
{
SqlDataAdapter sda1 = new SqlDataAdapter("SELECT * FROM Customers",
this.sqlConnection1);
SqlDataAdapter sda2 = new SqlDataAdapter("SELECT * FROM Orders",
this.sqlConnection1);
sda1.Fill(dataset11.Customers);
sda2.Fill(dataset11.Orders);this.comboBox1.DisplayMember = "CompanyName";
this.comboBox1.ValueMember = "CustomerID";
this.comboBox1.DataSource = dataset11.Customers;this.comboBox2.DisplayMember = "OrderDate";
this.comboBox2.ValueMember = "OrderID";
}private void comboBox1_SelectedValueChanged(object sender,
System.EventArgs e)
{
if(this.comboBox1.SelectedValue != null)
{
this.comboBox2.DataSource =
dataset11.Customers.FindByCustomerID(this.comboBox1.SelectedValue.ToString()
).GetChildRows(dataset11.Relations["CustomersOrders"]);
}
}
有很多语法错误
无法调试通过提示没有 dataset11 findbyCustomerid 的方法 另外也没有对comboBox2绑定dataset数据源的语句我用的vs2003和VS2005都测试过了,都不能通过运行 不过谢谢你!
就会提示“设置了dataSource 属性后无法修改项集合” 那么这个时候就不用数据源绑定了,只有直接向 combobox里写入一条信息 提示没有匹配记录
那么如何写入?
直接写会提示就会提示“设置了dataSource 属性后无法修改项集合” 有没有办法解决
?
因为b没有匹配a的数据,如何让b显示提示信息?提示无记录匹配?c也一样
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
因为b没有匹配a的数据,如何让b显示提示信息?提示无记录匹配?c也一样你可以先通过DataTable绑定a,然后在其的SelectedIndexChanged事件中,判断当前行信息,然后根据某种关联关系,用DataTable进行select语句,看是否有数据,如果有的话,用同样的filter产生dataview,绑定b;否则向b插入提示信息。在b的SelectedIndexChanged事件中,判断b的值,用同样的方法去填充c。
因为b没有匹配a的数据,如何让b显示提示信息?提示无记录匹配?c也一样根据a中选中的信息在绑定b的DataTable中Select,如果没有匹配记录的话,则提示“无满足条件的记录”,那么c同时也显示“无满足条件的记录”。
若b中有符合a的纪录那么就显示符合的纪录,而c中没有符合b选中项的纪录,那么只在c中提示“无记录”不就结了么。
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的方法换成你的方法就可以了
就会提示“设置了dataSource 属性后无法修改项集合” 那么这个时候就不用数据源绑定了,只有直接向 combobox里写入一条信息 提示没有匹配记录
那么如何写入?
直接写会提示就会提示“设置了dataSource 属性后无法修改项集合” 有没有办法解决
?
---------------------------------
可以在绑定后insert一条记录进去,WEB中对DROPDOWNLIST用过,combobox没经过测试
然后在a的SelectedIndexChanged事件中 根据a选项查询数据库可以得到一个影响行数 i ;
if (i>0)
{
b就可以执行绑定数据的操作;
并设为可用
}
else
{
Return;(什么都不用做,b保持不可用)
}
combox.datasource=dt;即可