以文本方式查看主题

-  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=5595)

--  作者:菜鸟foxtable
--  发布时间:2009/12/21 23:13:00
--  ComboBox控件一些建议。
帮助中有下面这三样东西:能否再灵活一些?
 

Dim cmd As New SQLCommand
Dim
dt As DataTable
Dim
cmb As WinForm.ComboBox
cmd.CommandText =
"SELECT DISTINCT 客户 From {订单}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls(
"ComboBox1")
cmb.ComboList= dt.GetComboListString(
"客户"
)

1、GetComboListString能否取两列的值?比如:
dt.GetComboListString("客户" & "公司")

======================================================================

Dim cmb As WinForm.ComboBox
cmb = Forms(
"窗口1").Controls("ComboBox1")
cmb.DisplayMember =
"客户名称" \'设置显示列
cmb.ValueMember =
"客户编号" \'设置取值列
cmb.DataSource=
"客户"

2、cmb.DataSource 能否直接引用外部数据而不必加载进来?比如:
Dim cmd As New SQLCommand
cmd.Connecti
cmd.CommandText = "SELECT DISTINCT 客户 From {订单}"
dt = cmd.ExecuteReader()
.....
....
cmb.DataSource= dt
=======================================================================


ListItemFormat

如果列表项目来自于数据表,此事件将在生成每一个列表项目时执行。

e参数属性:

Form:      触发事件的窗口
Sender:    触发事件的控件
ListItem:  准备显示的行,DataRow类型
Value:     列表项目准备显示的内容

示例

列表项目来自于数据表时,下拉的列表项目只能显示一列的内容,如果希望显示多列内容,可以通过事件ListItemFormat来实现。
例如某个ComboBox的列表项目来自于客户表,取值列为客户编号,显示列为客户名称,在默认情况下下拉列表只显示客户名称,选择某客户后,自动填入对应的客户编号。
如果希望下拉列表同时显示客户编号和客户名称两列的内容,可以在ListItemFormat事件中设置如下代码:

e.Value = e.ListItem("客户编号") & "|" & e.ListItem("客户名称")

上面这个事件动态加载外部表能玩吗?


--  作者:狐狸爸爸
--  发布时间:2009/12/22 8:19:00
--  
1、用GetUniqueValues,可以取多列的值

2、这是必须的,但是最好不要直接帮定到dt,而是用GetComboListString从dt获得不重复的值,再设置给combolist属性

3、这个事件和外部表无关的
--  作者:baoxyang
--  发布时间:2009/12/22 8:45:00
--  

建议把Datalist变成一个可显多列值及取多列值的一个控件。我也有这方需求,希望有一个控件可取数据表中多列值选择并显示多列值。


--  作者:狐狸爸爸
--  发布时间:2009/12/22 8:59:00
--  
Combox就可以
--  作者:baoxyang
--  发布时间:2009/12/22 9:32:00
--  

不知如何使用?


--  作者:czy
--  发布时间:2009/12/22 10:33:00
--  
以下是引用baoxyang在2009-12-22 9:32:00的发言:

不知如何使用?


在ListItemFormat事件中设置代码。


--  作者:baoxyang
--  发布时间:2009/12/22 16:20:00
--  
谢C版,只不过感觉Combobox效果差点。灵活性不足。