以文本方式查看主题

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

--  作者:hnguang
--  发布时间:2020/4/17 9:27:00
--  关于COMBOBOX排序的问题
如图,我的表中加载好的部门顺序为什么到COMBOBOX中就会不一致呢

图片点击可在新窗口打开查看此主题相关图片如下:2-1.png
图片点击可在新窗口打开查看


--  作者:hnguang
--  发布时间:2020/4/17 9:28:00
--  
这个问题同样在树形中也有
--  作者:有点蓝
--  发布时间:2020/4/17 9:40:00
--  
这些控件都有自己的额排序方式。使用代码设置排序

GetComboListString(ColumnName,Filter, Sort)

ColumnName:列名称,从此列中提取不重复的值。
Filter:     可选参数,指定一个条件表达式,只返回符合此条件的值。
Sort:       可选参数,指定排序列,如果省略,则根据取值列排序,通常无需设置。


--  作者:hnguang
--  发布时间:2020/4/17 10:44:00
--  
Dim cmd As New SQLCommand
cmd=new SQLCommand
cmd.ConnectionName=_conn
cmd.CommandText="sel   ect *  from tbl_dept order by dept"
Dim dt As DataTable
dt=cmd.ExecuteReader
\'Dim cmbox1 As WinForm.ComboBox=e.Form.Controls("cmb_zu")
e.sender.ComboList= dt.GetComboListString("dept","","dept")

跟SQL查询结果显示的排序不一样

--  作者:有点蓝
--  发布时间:2020/4/17 10:50:00
--  
SQL查询结果如果绑定了窗口表,sql里的排序是没有什么用的,因为table有自己的排序方式,默认是按照sortkey列排序,如果没有sortkey列就按照主键排序
--  作者:hnguang
--  发布时间:2020/4/17 11:02:00
--  
e.sender.ComboList= dt.GetComboListString("dept","","dept")这里不是加了排序条件吗
--  作者:有点蓝
--  发布时间:2020/4/17 11:11:00
--  
这个影响的是组合框里的排序,不会影响窗口表的排序。组合框里的排序肯定是正确的
--  作者:hnguang
--  发布时间:2020/4/17 13:26:00
--  
就是组合框里的排序不正確
--  作者:有点蓝
--  发布时间:2020/4/17 14:10:00
--  
上传实例说明