找回密码
 注册成为天翎用户
查看: 2494|回复: 7

[已解决] 请问智能提示搜索框支持的最大选项是多大??超出限制的话有什么解决办法吗?

[复制链接]
大麦 发表于 2016-8-26 09:37:30 | 显示全部楼层 |阅读模式
本帖最后由 andy1 于 2016-9-12 14:36 编辑

之前也用过智能提示搜索框,使用的“本地静态数据查询”方式,现在需要查询一个表的字段作为选项,返回的结果有6700多项,最后返回的字符串有57000多个,然后打开页面的时候就报错了,是不是超出长度限制了??有什么办法解决吗??
wander 发表于 2016-8-26 10:11:33 | 显示全部楼层
只需要设置top记录作为KEYWORD,脚本如下:
sqlserver : Select top 5 * from [TABLE] where field like '%KEYWORD%';
智能搜索提示框使用的时候要注意,当检索到的数据较多时,我们一般取前5条记录,类似于百度的搜索关键词提示一样。不然会造成页面加载慢。选项的脚本如下:
var sql="select '"+getDomainid()+"'as domainid ,item_学号 from tlk_成绩单 limit 0,5";
var data=queryBySQL(sql);
var rtn = "";
if(data!=null){
                for(var iter = data.iterator();iter.hasNext();){
                        var doc = iter.next();
                        rtn += doc.getItemValueAsString("学号") + ";";
                        println("rtn----->" + rtn);                        
                }
}
println("rtn----->" + rtn);
rtn
回复

使用道具 举报

wander 发表于 2016-8-26 15:59:28 | 显示全部楼层
获取智能搜索提示框的输入内容脚本如下:

(function(){
          var inp_help = getParameter("keyword");
          println("inp_help=========="+inp_help);
})();
回复

使用道具 举报

andy1 发表于 2016-8-29 18:14:52 | 显示全部楼层
这个原因是说,你写的脚本搜索的是前面五条,然后前面五条又没有你所查询的那个关键字。你可以在sql后面加个where上去。
回复

使用道具 举报

 楼主| 大麦 发表于 2016-8-30 11:19:08 | 显示全部楼层
使用“服务器动态数据查询”可以避免数据量太大的问题,但是现在又两个新问题

1. 输入某些关键字时,后台返回了正确的数据,但前台表单没有显示,具体内容已发给wander和andy
2. 使用此表单制作的视图在包含元素视图中不会显示该字段的值,数据库里的值是没有问题的,换成“本地静态数据查询”的话也可以显示,只有使用“服务器动态数据查询”时该字段的值不会显示
回复

使用道具 举报

andy1 发表于 2016-9-1 12:51:25 | 显示全部楼层
还有种可能就是查询速度慢导致的。
回复

使用道具 举报

 楼主| 大麦 发表于 2016-9-12 14:32:21 | 显示全部楼层
已解决,请结帖
回复

使用道具 举报

 楼主| 大麦 发表于 2016-9-12 14:35:00 | 显示全部楼层
导致返回结果没显示的原因是返回结果里含有特殊字符
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 02:20

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表