У меня есть некоторый JS-код, который создает собственный фильтр с использованием некоторых критериев, а затем добавляет его в поле поиска в форме. Когда этот код запускается и запускается в первый раз, он работает правильно; правильные результаты появляются. Но если вы измените критерии пользовательского фильтра (измените одно из полей в форме, которую команда createCustomFilter использует для создания fetchxml), то результаты поиска не будут отображаться, когда должны появиться результаты.
Эта проблема возникает только в новом унифицированном интерфейсе. Я протестировал этот же код в веб-интерфейсе, и эта проблема не возникает; код работает правильно.
Мне кажется, ранее примененный фильтр не удаляется? Вот почему никаких результатов не появляется. Есть ли обходной путь, который позволил бы этому работать в UCI?
Пожалуйста, сообщите.
var filter;
function OnFieldChange(executionContext) {
var formContext = executionContext.getFormContext();
if (filter != "" && filter != null) {
formContext.getControl("test_lookupfield").removePreSearch(lookupCustomFilter);
}
filter = createCustomFilter(executionContext);
formContext.getControl("test_lookupfield").addPreSearch(lookupCustomFilter);
}
function lookupCustomFilter(executionContext) {
var formContext = executionContext.getFormContext();
formContext.getControl("test_lookupfield").addCustomFilter(filter);
}
function createCustomFilter(executionContext) {
//creates a custom fetchxml filter that has been tested and is correct
}