以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何让下拉框实时刷新? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132335) |
||||
-- 作者:ycwk -- 发布时间:2019/3/20 9:40:00 -- 如何让下拉框实时刷新? 做了个下拉选择框,但是下拉框(dropdownbox)是检索 “A表”的数据的,但是A表的数据是不断在发生变化的,如何让下拉检索A表时实时刷新A表的内容? 是否需要设置下拉窗口的代码? ![]() ![]() 下拉框 TextChanged事件为: Dim drp As WinForm.DropDownBox = e.sender If drp.DroppedDown Then \'如果下拉窗口已经打开 \'下面两行没起作用 Dim t As Table = Tables("win_选择电脑设备_table_选择电脑设备") t.DataTable.Load(False) Dim tbl As Table = Tables("win_选择电脑设备_table_选择电脑设备") If drp.Text = "" Then \'如果内容为空 tbl.Filter = "资产卡片号 is not null " \'显示所有设备 Else \'否则根据输入内容进行模糊筛选 Dim txt As String = "\'%" & drp.Text & "%\'" tbl.Filter ="资产卡片号 is null " & "and (设备类型 Like " & txt & "Or 所在科室 Like " & txt & " Or 所在房间 Like " & txt & ")" \'msgbox(tbl.Filter) \'tbl.Filter = "姓名 Like " & txt & " Or 单位 Like " & txt & " Or 部门 Like " & txt & " Or 手机 Like " & txt & "Or 短号 Like " & txt & "Or 邮箱 Like " & txt & "Or QQ Like " & txt & "Or QQ Like " & txt & "Or 微信 Like " & txt & "Or 办公电话 Like " & txt End If End If [此贴子已经被作者于2019/3/20 9:45:37编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2019/3/20 10:43:00 --
代码写到 DropDownOpened 事件,即可。
|
||||
-- 作者:ycwk -- 发布时间:2019/3/21 9:24:00 -- 我把它写在 被拉出来的窗口(窗口类型为 DropDownForm) 的 dropdownopened事件里面,可是还是没有生效啊 Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("win_选择电脑设备_table_选择电脑设备") Dim t As Table = Tables("win_选择电脑设备_table_选择电脑设备") t.DataTable.Load(False) If txt = "" Then tbl.Filter = "" Else txt = "\'%" & txt & "%\'" tbl.Filter = "设备类型 Like " & txt & "or 所在科室 Like " & txt & " Or 所在房间 Like " & txt End If e.Form.DropDownBox.Select() \'将输入焦点返回下拉列表框 |
||||
-- 作者:有点蓝 -- 发布时间:2019/3/21 10:27:00 -- 试试 Dim t As Table = Tables("win_选择电脑设备_table_选择电脑设备") t.DataTable.loadfilter = "" t.DataTable.Load(False) 或者把筛选改为加载 dim filter as string = "" If txt > "" Then txt = "\'%" & txt & "%\'" filter = "设备类型 Like " & txt & "or 所在科室 Like " & txt & " Or 所在房间 Like " & txt End If tbl.DataTable.loadfilter = filter tbl.DataTable.Load(False) |
||||
-- 作者:ycwk -- 发布时间:2019/3/26 11:23:00 -- 按照上述方法试了,还是不行啊 下面的代码是选择窗口,和被下拉的窗口 输出的代码,能帮忙检查一下吗?
[此贴子已经被作者于2019/3/26 11:23:03编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2019/3/26 12:20:00 -- 上传具体实例测试。 |
||||
-- 作者:ycwk -- 发布时间:2019/3/26 14:39:00 -- 是不是因为 ables("win_选择电脑设备_table_选择电脑设备") 是副本表,所以无法用 load刷新?
|
||||
-- 作者:有点甜 -- 发布时间:2019/3/26 15:42:00 -- 不是把窗口发上来。请单独做一个可以直接打开测试的项目发上来。 |