codeslave

常用链接

统计

Link

最新评论

javascript高级组合查询控件(0.5.3更新)

有些网友提了一个问题:当操作完成后,发现中间的一组括号中需要再添一个条件时只得删了从来。
本次解决了这个问题,如下图:

通过后面的上下箭头可以调整条件顺序。

还有一个问题就是多表查询时,字段名前面需加一个表名,这个其实可以用下列方式先解决。
在字段信息初始化时设置如下:
FieldList.add(new Field('Table1.No''表1.编号''number''10'''''));
FieldList.add(
new Field('Table2.Name''表2.名称''varchar''100'''''));
生成的效果如下:


如果表多的话,下拉列表可能会很长,所以不算是一个很好的方法,呵呵,唯有等下次再完善了。

(修正了not与null之间的出现 的bug)
源码:highquery0.5.3.2

posted on 2009-04-22 13:35 codeslave 阅读(3820) 评论(34)  编辑  收藏 所属分类: script

评论

# re: javascript高级组合查询控件(0.5.3更新) 2009-05-21 17:35 mo

请问,从数据库查的字段如何放进列表中啊,能给些例子么?谢谢。我要访问oracle和sqlserver  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-05-25 12:21 codeslave

@mo
您好!同dtree的做法一样,例如struts2:
首先把记录(实体)查出来后放到一个list里面,
接着在界面(jsp页面)写类似下面的代码:
<s:iterator value="list">
FieldList.add(new Field('<s:property value="value"/>', '<s:property value="value"/>', '<s:property value="value"/>', '<s:property value="value"/>'));
</s:iterator>

简单来说就是遍历生成就行!
因为我不懂php,不过做法相信是一样的,阁下可以试下!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-05-31 11:17 mo

ok了,谢谢  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-01 15:13 houlc

当条件是is null或is not null 时,拼完的sql传到后台java里 is 和null中间是乱码,看了源码是用 &nbsp;画的空格,这个字符在网页上显示是空,但是传到后台实际是乱码,不知道你发现没有?  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-02 14:15 codeslave

@houlc
谢谢!是说not与null之间的&nbsp;吗!那确实是个bug!呵呵!但is和null之间应该没加&nbsp;,能具体说说吗?我暂时没发现这个出现乱码!上面的问题可以下载的0.5.3.1版解决(本页面)。再次感谢阁下的关注!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-02 19:29 houlc

不好意思,是我记错了,那就是只有not null 这个有乱码,这个乱码只有传到后台时,才能看到我用的是java 在前台页面或alert是看不出来的,我用了你的这个控件做了个程序才发现的。
还有个问题,我弄了一周也没弄出来,就是当这个查询配好了之后我想把配置条件保存起来,下次进到这个页面时就初始化为保存好的数据项,并且可以从新配其他项,这个方法该怎么写啊?能不能给提供一下,非常期待!!!!!!!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-03 10:18 codeslave

@houlc
真的很抱歉,这个版本暂时没这项功能,之前也有网友建议过(就是逆向的条件表达式生成查询界面的功能),本来想下一个版本实现,但因为一直很忙,所以还没有时间去弄。
但具体的思路还是有的:
1.把每一行条件以xml的形式保存下来,从左到右(连接,左括号,字段,运算符,内容,右括号,排序),例如:
<query>
<cond>
<id></id>
<field><field>
...
<cond>
<cond>
...
</cond>
</query>
当然还得把业务字典和字段列表等相关的信息也保存进去。
2.根据业务字典和字段列表信息先执行一次初始化,如:
// 业务字典
DictList.add(new Dict(...));
// 字段信息
FieldList.add(new Field(...));
3.写一个初始化界面的方法;
首先查看xml有多少个cond(条件行数),然后遍历一行新建一行条件(界面),根据每一行信息设置这行的界面,也是从左到右,例如该行选什么连接条件,选什么字段等。

大概过程就这样,希望能对你有帮助!再次感谢你的建议!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-06 14:53 houlc

非常感谢你给的思路,我再试试,不过我是把条件存到数据库里的,没用xml  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-07 16:27 army

运算符能否更换为中文表达?如:等于、不等于、大于、小于、不为空、包含、右包含。  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-07-08 13:50 codeslave

@army
你好!可以下载的0.5.3.2版(本页面),找到highquery.js的方法initCondition(id),修改里面的符号就行了!我改了一个"="为"等于",其它的也是这样改就行!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-11 10:09 hazel

LZ。
最近搜到您的控件。。。挺符合我需求的。。。可是怎么用啊。。能不能多点提示啊。。我把JS拷到我页面,总说 DictList 未定义啊。。。怎么把数据库里的列读出来放到下拉框里啊。。。能不能给个例子呢。。我的邮箱jojohappy99@126.com 麻烦了。  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-11 19:20 codeslave

@hazel
您好!
第一个问题:有可能是你导入的脚本路径不正确,DictList定义在highquery.js里面!你的页面上需要引入,具体可参考demo.htm,还有就是highquery.js里定义的HQConfig.basePath,这个必须根据你的项目和文件放置的具体路径修改。

第二个问题:数据库里怎么读取列我就不说了,每个数据库都不一样,呵呵,基本上可以在网上查到;而读出来后可以象下面这样实现:

以下是一个struts2的例子

首先把记录(实体)查出来后放到一个list里面,
接着在界面(jsp页面)写类似下面的代码:
<s:iterator value="list">
FieldList.add(new Field('<s:property value="value"/>', '<s:property value="value"/>', '<s:property value="value"/>', '<s:property value="value"/>'));
</s:iterator>

简单来说就是遍历生成FieldList就行了!

希望对你有帮助!
  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-14 08:30 hazel

很感谢您回复。。。
跟路径没关系啊。。
我在我的web项目里导入了整个js的那个文件夹
用你的demo文件浏览完全没问题。。。。
但我在同级目录下建一个aspx页面,
把demo里的js拷到aspx页面都不行。。
就说DictList未定义。。。
还有个 未结束的字符。。 2个错误。。。
为什么你的demo可以执行的js。。
放到我的aspx页面就执行不了呢。。。  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-14 14:23 codeslave

@hazel
您好!

.net这个环境我没测试过,不过理论上最后得到的也是html,那估计区别不大吧。

如果不是路径问题,那有可能是编码问题,举个例子:如果你的aspx页面用的编码是utf-8,而那些js是gb的,那有可能出现这种问题。

希望对你有帮助!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-14 15:37 hazel

我设置了页面的编码方式都不行。。。
但是我在highquery的文件夹下建立一个新的js文件。
把highqueryv.js里所有的代码拷贝到这个新文件里。。
用同样的方法引用。
demo页面正常。。
aspx页面又报了另外一个错误。。
显示:'return'语句在函数之外。
上面的组合框已经出来了。。
点生成脚本也没反应。。。
这大概是哪方面的问题呢。。。  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-14 16:24 codeslave

@hazel
您好!

听你描述那大概可以确定是编码问题,除了highquery.js外,应该还得把其他js也改了!

“'return'语句在函数之外”这种异常可以在网上查到很多相关信息,大概描述也是js的编码和使用它的页面存在编码不同而引发。

希望对你有帮助!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-14 17:09 hazel

非常感谢。。你的js包里默认的编码是GB2312。。。改成UTF-8就可以了。。  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-15 14:58 hazel

在FieldList.add(new Field('Table2.Name', '表2.名称', 'varchar', '100', '', 'functionName'));里

'functionName' 我在在这个方法里加参数应该怎么弄呢。。。

因为我有很多字典。。。没必要每个字典都另外做个页面把。。  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-15 15:41 hazel

还有个问题。。。
如果有些字典里的数据比较多。。。
这样弹个字典窗口可能没那么好选择。。
能不能在选择列名的下拉框后,自动给文本框绑定一个JS函数呢。。。
这个JS也是要我们自己实现的。。。
期待您的回复啊。。。嘿嘿  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2009-09-16 13:39 codeslave

@hazel
您好!

第一个问题:
回调函数的方法不能带参数,恐怕你要用其他方法完成,例如全局变量等;另外,也不一定要另外做一个页面,只要返回的结果组成一个数组就行,例如:function functionName()
{
return new Array('1','2');
}

第二个问题:
现在自定义的回调函数只能绑定在"选择"按钮上,不能绑定在文本框上。

希望对你有帮助!
  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2010-01-18 13:51 tun

这个控件在使用的过程中,我发现字段列表无法从xmlhttprequest中获取数据,也就是实现动态加载字段内容。
因为这个控件用的是fieldlist.add的方法。
给作者提个建议,可否封装成jquery插件。然后实现字段的动态载入。

现在只能刷新一次页面后,字段内容就固定了。题网作者提出解决方案,比如可以改变字段添加到方法,不要使用fieldlist.add,可以弄成inithighQuery()里面的一个参数。
  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2010-02-25 15:09 codeslave

@tun
非常感谢您的建议!

新的版本(1.0)可以通过xml模板进行初始化,因为一直没有解决好firefox的支持问题,所以没有发布出来!如果阁下感兴趣,可留下邮箱或QQ等联系方式,我可以直接发给你!

再次感谢你的关注!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2010-09-10 10:58 白云飞

你好,我现在也在研究这个组合查询控件,然后希望可以得到你的新版本的控件,因为我需要将条件进行初始化,我的邮箱是luochengwei@126.com,谢谢!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2010-09-16 16:25 codeslave

@白云飞
你好!已发到你的邮件!
感谢你的关注!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2012-04-06 14:34 xianmin

你好,我要做这个组合查询整体思路是怎么的能麻烦你介绍下吗,就是写哪些类,哪些页面,彼此又是如何调用的??谢谢你  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2012-05-03 18:13 codeslave

@xianmin
很久没上来了,呵呵,这个不知如何表达,其实这个只是辅助生成条件和排序,结合你的查询实体或者语句就可以用了,要什么类,页面等只能根据你项目的使用方式来定,没有特别的限制  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2012-06-12 16:00 xingkongzhiyue

请问查询的字段,如何设置默认值.比如说,查询字段是本月巡检,设置"本月巡检"的默认值为当前时间!  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2012-06-21 13:22 codeslave

@xingkongzhiyue
您好,我改了一个版本支持该设置,可留下邮箱或QQ等联系方式,我可以直接发给你  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2012-07-11 15:22 xingkongzhiyue

呵呵,谢谢你哈,15159592745@139.com  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2013-01-10 23:38 cmd

您好.我一直关注您的这个程序.现在想学习一下.有劳您发一个最新的代码,我的邮箱是cmd.ares@gmail.com 谢谢  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2013-02-06 15:39 codeslave

您好,感谢你关注,已发布你们的邮箱中,日后最新版本可以到 http://www.uthink.com.cn/client/product/product_view.jsp?rowId=5&pcate=C 这里下载,^_^  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2013-04-23 11:35 wxw

@codeslave
你好,看到您给的链接,不过好像找不到,能不能麻烦您也给我发一份最新的版本学习一下~~谢啦!531508907@qq.com
  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新) 2014-10-31 09:48 huisongyang

您好,我可以使用在自己的项目中吗?  回复  更多评论   

# re: javascript高级组合查询控件(0.5.3更新)[未登录] 2014-11-23 15:20 codeslave

@huisongyang
可以,开源的  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: