我想实现下列的功能:(见图)
此主题相关图片如下:设表事件操作过程.gif
需求:
1、“商品1级分类”的下拉列表在窗口加载时生成;
2、“商口2级分类”的下拉列表由“商品1级分类”的内容生成;
3、“商口3级分类”的下拉列表由“商品2级分类”的内容生成;
4、“商品1级分类”改变时,“商口2级分类”、“商口3级分类”内容清空重选;
5、“商口2级分类”改变时,“商口3级分类”内容清空重选。
方法一:不设置任何表事件,在窗口的组合框中TextChanged事件中写入代码。
商品1级分类对应的组合框中代码为:
Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim c3 As WinForm.ComboBox = e.Form.Controls("ComboBox3")
c2.ComboList = DataTables("商品分类表").GetComboListString("商品2级分类","[商品1级分类] = '" & c1.Value & "'")
c2.Value = ""
c3.value = ""
商品2级分类对应的组合框中代码为:
Dim c1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim c2 As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim c3 As WinForm.ComboBox = e.Form.Controls("ComboBox3")
c3.ComboList = DataTables("商品分类表").GetComboListString("商品3级分类","[商品2级分类] = '" & c2.Value & "'")
c3.value = ""
运行结果如下图所示,达不到要求的效果:
此主题相关图片如下:未设表事件操作过程.gif
方法二:把方法一中标注为红色的三条语句去掉,并在表事件中的DataColChanged事件设置如下代码:
Dim 列名 As String = e.DataCol.Name
Select Case 列名
Case "商品1级分类"
e.DataRow("商品2级分类") = ""
e.DataRow("商品3级分类") = ""
Case "商品2级分类"
e.DataRow("商品3级分类") = ""
Case "商品3级分类"
End Select
可以实现效果。
各组合框所邦定的字段如下图所示:
此主题相关图片如下:未设置表事件1.jpg
问题是:
c2.Value = ""
c3.value = ""
这样的语句为什么不能改变组合框以及字段中的值?
附件如下:
未设置表事件:
设置了表事件:
[此贴子已经被作者于2012-5-14 10:19:27编辑过]