谁能给个例子
两层联动是对的 但是三层联动的时候
Combobox2的数据源是动态加载上的 页面加载的时候总是取不到combobox2.selectedValue的值
但是
private void Entry_Load(object sender, EventArgs e)
{
ComboboxBind();//为combobox2绑定数据源的方法
ComboboxBinds();//为combobox3绑定数据源的方法
}
由于为combobox3绑定数据源的时候要用到combobox2.SelectedValue的值
有什么好的解决方法么 selectedItemchange的时候倒是能取到combobox2.selectedValue的值
private void ComboboxBind()//2层
{
SqlConnection conn = new SqlConnection(connStr);
string sql = "Select * from T_SCostCategories where FCostCategoriesID='" + CBoxFCostCate.SelectedValue + "'";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "SCostCategories");
DataTable CostCate = ds.Tables["SCostCategories"];
CBoxSCostCate.DataSource = CostCate;
CBoxSCostCate.DisplayMember = "SCostCategories";
CBoxSCostCate.ValueMember = "SCostCategoriesID";
}
private void ComboboxBinds()//3层
{
SqlConnection conn = new SqlConnection(connStr);
string sql = "Select * from T_TCostCategories where FCostCategoriesID='" + CBoxFCostCate.SelectedValue + "' and SCostCategoriesID='" + CBoxSCostCate.SelectedValue + "'";
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
da.Fill(ds, "TCostCategories");
DataTable CostCate = ds.Tables["TCostCategories"];
CBoxTCostCate.DataSource = CostCate;
CBoxTCostCate.DisplayMember = "TCostCategories";
CBoxTCostCate.ValueMember = "TCostCategoriesID";
}
这是我写的两个方法 有问题么 开始写2层联动的时候进行测试了 没问题的 但是写上三层就乱套了 是不是要在调用这个方法的时候 写上对selectedIndex的判断啊
ComboboxBind();//为combobox2绑定数据源的方法
combobox2.selectedindex=0;//让combobox2选中一个应该就行了吧
ComboboxBinds();//为combobox3绑定数据源的方法
既然绑定combobox3之前绑定了combobox2了,combobox2.SelectedValue应该有值了呀,你确定combobox2绑定上数据了?
建议:在绑定3时,应该在这之前先设置好2的值,连动时也是如此操作的,选择1时,就要设置2的值 了。
同楼上,Combox 绑定完后,给它一个初始选中的Value.