Я использую JsonQueryRestStore с опцией ClientFilter для кэширования запросов и данных, чтобы выгрузить сервер некоторых повторных запросов xhr для данных, уже отправленных клиенту.
Написанный мною код работает нормально, кромемелкая проблема.У меня есть выбор фильтра, где пользователь вводит и ограничивает доступные варианты.В этом поле нет особого регистра, поэтому, набрав «mi», «MI», «Mi», вы получите одинаковый результат выбора в верхнем регистре.Проблема в том, что даже если я использую опцию: queryOptions: {ignoreCase: true} и / или uppercase: 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">