我正在使用带有ClientFilter选项的JsonQueryRestStore来缓存查询和数据, 卸载已经发送给客户端的数据的重复xhr询问的服务器。
我写的代码工作得很好,除了一个小问题。 我有一个过滤选择用户输入的位置并限制可用的选项。 此字段没有特定的大小写,因此输入“mi”,“MI”,“Mi”,您将获得相同的结果选择全部大写。 问题是,即使我使用选项: queryOptions:{ignoreCase:true} 和/或大写:在字段上为true,似乎ClientìFilter忽略它并为每个案例组合查询服务器,因此它将每个案例缓存为不同的案例组合。 即 对于两个字母,您可以有4种组合:mi,MI,Mi,mI
现在,如果ClientFilter没有正确处理,我想强制所有输入大写。但我无法让它工作.. ClientFilter以用户身份发送和缓存查询 键入它,即使我尝试转换它。
知道如何解决这个问题吗?
我在javascript以下的简化代码:
dojo.require('dojox.data.FilteringSelect');
dojo.require('dojox.data.ClientFilter');
dojo.require('dojox.data.JsonQueryRestStore');
var fooselect = new dijit.form.FilteringSelect({
id : "fooId",
store: new dojox.data.JsonQueryRestStore({ target: '/fooajax', labelAttribute: 'description', cacheByDefault: true }),
searchAttr : "description",
searchDelay : 300,
autocomplete : true,
uppercase: true,
trim : true,
required : ${required},
queryOptions: {ignoreCase: true}
}, "fooInput");
HTML:
<input id="fooInput">
答案 0 :(得分:0)
在queryOptions中,您可以添加具有true值的缓存键,如下所示。
queryOptions="{cache: true,ignoreCase: true}"
请告诉我们是否有效。 参考。 URL。 http://mikoskay.net/158-client-side-sorting-with-jsonreststore.html