以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]ComboList 的用法问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26176)

--  作者:chnfo
--  发布时间:2012/11/26 15:52:00
--  [求助]ComboList 的用法问题
1.怎么让ComboList在最初显示的时候,就有一个默认值?
    例如在某些特殊情况下,可能 ComboList只有一个值备选,还要用户去选择一下,不太好;
    或者,整个界面的表的filter有赖于 ComboList 的选择,如果不输入 ComboList ,界面可能会显示为空白,也不太好。

2.我的代码里,它总是提示:语法错误:“=”运算符后缺少操作数,不知道问题在哪里,试了cmb.text,cmb.value,cmb.SelectedValue,好象都不行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:combolist.table


[此贴子已经被作者于2012-11-26 15:52:47编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/26 16:04:00
--  
 对于这种,就不要用列表项目来源于数据表了。

 直接设置自定义列表项目算了。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:combolist.table



--  作者:chnfo
--  发布时间:2012/11/26 16:32:00
--  
追问一下:
我在窗口的AfterLoad事件中,对SQLTable表作了一些设置,例如增加了几个临时列、确定显示列、锁定了某些列、表的加载条件(目前就这4个)

但在下拉Combolist后,Table显示出来的界面上,这些设置就不起作用了——例如临时列不显示了,锁定的列也没锁了

要怎么样才能保持这些设置,不至于要去combolist的SelectedIndexChanged事件里,把这些设置复制一次吧。


之所以把combolist放在上面,一是为了减少列占用空间,二是避免在SQLTable表中加载太多行,有点象筛选,只是把筛选放到了上面。
[此贴子已经被作者于2012-11-26 16:47:20编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/26 17:06:00
--  
 楼主的comboList设置的是加载条件吧?

 楼主如果用的是LoadFilter,Load加载的话,会保留Table设置的样式。

 如果用的是Fill,就会设置成Fill表的列,也就是设置失效。

 参考下

 Tables().DataTable.Load()

--  作者:chnfo
--  发布时间:2012/11/26 17:17:00
--  
确实,是用的Fill方法。主要是看到帮助里的这一句:DataTable的Load方法是从同一个后台数据表中加载数据的。如果需要从从其它表加载数据,则需要使用Fill方法。


comboList是一个过滤条件,用于过滤SQLtable的显示内容。

我在想一个问题 ,其实相当于窗口加载之后,再通过comboList这个条件筛选出数据来展示。

这是不是成了如何让窗口里的SQLTable表,通过筛选条件来展示数据的问题了?

如果要把设置代码拷到这里面去,那工作量就大了…………

我其实在窗口中还加了一个txtbox来查找,这下麻烦大了,不仅仅有下拉框,还有文本框,要把设置复制过去,累球人……
[此贴子已经被作者于2012-11-26 17:29:04编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/26 17:38:00
--  
 方法一:你可以把公共的内容提取出来,写到内部函数里去,用一句代码调用就行了。

 方法二:不要用fill方法,你的不是SqlTable么?又不是SqlQuery,直接用Load加载数据也行的。

--  作者:chnfo
--  发布时间:2012/11/26 22:15:00
--  
试了一下,貌似可行。

DataTable的Load方法是从同一个后台数据表中加载数据的。如果需要从从其它表加载数据,则需要使用Fill方法

这句话可能理解错了,所说的从同一个后台数据表中加载数据,是指数据源是同一个表。