Foxtable(狐表)用户栏目专家坐堂 → ListItemFormat事件如何动态生成?


  共有10776人关注过本帖树形打印复制链接

主题:ListItemFormat事件如何动态生成?

帅哥哟,离线,有人找我吗?
菜鸟foxtable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
ListItemFormat事件如何动态生成?  发帖心情 Post By:2009/3/6 17:36:00 [只看该作者]

ComboBox控件列表项目用下面代码动态生成....
Dim dt As DataTable
cmd.CommandText = "select 床位,姓名 From [H_ZYXX] where 结算日期 is null and 出院日期 is not null"
dt = cmd.ExecuteReader()
e.form.Controls("ComboBox1").Combolist = dt.GetComboListString("床位")


如果直接在其ListItemFormat事件中设置好象不起作用...请问如何用代码生成ListItemFormat事件中想实现的效果?


ListItemFormat

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

e参数属性:

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

示例

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

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

 


 

[此贴子已经被作者于2009-3-6 17:38:36编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/3/6 17:50:00 [只看该作者]

下面的代码,应该放在窗口的AfterLoad事件中:

Dim dt As DataTable
cmd.CommandText = "select 床位,姓名 From [H_ZYXX] where 结算日期 is null and 出院日期 is not null"
dt = cmd.ExecuteReader()
e.form.Controls("ComboBox1").Combolist = dt.GetComboListString("床位")

 回到顶部
帅哥哟,离线,有人找我吗?
菜鸟foxtable
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2009/3/6 17:53:00 [只看该作者]

我就是放在AfterLoad事件中啊....那e.Value = e.ListItem("床位") & "|" & e.ListItem("姓名")为何不起作用?

那个事件不能用代码实现吗?


比如:e.form.Controls("ComboBox1").ListItemFormat = ...........................
[此贴子已经被作者于2009-3-6 17:56:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/3/6 17:57:00 [只看该作者]

这一部分应该放在ListItemFormat事件中:
e.Value = e.ListItem(
"客户编号") & "|" & e.ListItem("客户名称")

两部分代码的作用完全不同,要分开的。

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:713 积分:5196 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2014/6/21 16:22:00 [只看该作者]

这个问题跟我遇到的一样,在窗口的afterload中定义的dt和赋值后
在控件的ListItemFormat事件中设置后根本无法实现
有没有办法解决?

 回到顶部