【发布时间】:2011-09-20 05:45:45
【问题描述】:
我正在使用带有 ClientFilter 选项的 JsonQueryRestStore 来缓存查询和数据, 为已经发送到客户端的数据卸载一些重复的 xhr 询问的服务器。
我编写的代码运行良好,除了一个小问题。 我有一个过滤选择,用户在其中键入并限制可用的选择。 该字段没有特定大小写,因此键入“mi”、“MI”、“Mi”会得到相同的结果选择全部大写。 问题是,即使我使用该选项: 查询选项:{ignoreCase:真} 和/或大写:在字段上为真,ClientìFilter 似乎忽略了这一点,并为每个案例组合查询服务器,因此它将每个案例组合缓存为不同的组合。 IE 对于两个字母,您可以有 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">
【问题讨论】:
标签: caching case-insensitive dojo