以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]combobox控件中显示列于取值列的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=16572)

--  作者:pb_1
--  发布时间:2012/2/17 16:24:00
--  [求助]combobox控件中显示列于取值列的问题

COMBOBOX 控件,连接内部数据表,数据表里有2列,一列为性别名称值为:“男”,“女”,一列为性别代码值为“01”,“02”,在控件中将显示列设置为性别名称,将取值列设置为性别代码

.Current("XBMC")=E.ForM.Controls("ComboBox2").Value

用以上语句来保存的时候,保存的却是“男”不是01

 


--  作者:狐狸爸爸
--  发布时间:2012/2/17 16:27:00
--  

取值列和显示列,针对的是下拉列表,对于输入框中的值是无效的。

 

改一下:

 

if  e.ForM.Controls("ComboBox2").Value = “01” then

   .Current("XBMC") =  "男"

Else

   .Current("XBMC") = "女"

End if


--  作者:pb_1
--  发布时间:2012/2/17 16:32:00
--  
求助狐狸爸爸,对于性别这样比较少的选项可以这样,可对于有很多选项的用IF语句来判断则太不显示了,比如民族和民族代码就有几十个,有什么高效的方法吗?
--  作者:狐狸爸爸
--  发布时间:2012/2/17 16:38:00
--  

如果很多,应该有一个编码表,很简单:

 

Dim m As string  = e.ForM.Controls("ComboBox2").Value \'获得编码

Dim r As DataRow = DataTables("编码表").Find("编码 =\'" & m & "\'")

if r isnot nothing then

    .Current("XBMC") = dr("名称")

end if


--  作者:pb_1
--  发布时间:2012/2/17 17:03:00
--  
谢谢狐狸爸爸,我举一反三解决了一大批问题