以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  生成下拉列表时代码写在哪里更高效?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100968)

--  作者:HappyFt
--  发布时间:2017/5/22 16:41:00
--  生成下拉列表时代码写在哪里更高效?

可以在表的PrepareEdit中写如下代码生成下拉列表

If e.IsFocusCell Then \'一定要判断是否是焦点单元格
    Dim cmd As New SQLCommand
    cmd.ConnectionName = Mydata
    Dim dt As DataTable
    Se lect Case e.Col.Name
        Case "入库单位"
            \'从供应商中提取数据
            cmd.CommandText = "Se lect distinct 供应商简称 From 供应商 where 业务类别 = \'外协加工\'"
            dt = cmd.ExecuteReader()
            e.Col.Combolist = dt.GetComboListString("供应商简称")
    End Se lect
End If

也可以将上述代码放在窗口的afterLoad中,感觉第一种每次准备编辑表时都要执行一次,是不是后面这种更高效,还是无所谓?
谢谢!

--  作者:有点色
--  发布时间:2017/5/22 17:05:00
--  

 肯定不能重复查询,prepareEdit的触发频率是很高的。

 

 如果你供应商变化频率不高,就不要重复查,最好是做个刷新按钮,重新获得全部内容。