Фильтрованный поиск не работает, когда селектор вида отключен - PullRequest
2 голосов
/ 22 марта 2012

Я создал отфильтрованное представление для поиска через javascript, который получает значение фильтра из списка выбора.Это прекрасно работает, за исключением того, что я также хочу удалить возможность выбора пользователем одного из системных представлений.

Если для параметра Выбор селектора установить значение Выкл. вкл.поиск в конструкторе форм корректно отключает выбор вида, но мой отфильтрованный вид также включен в это исключение, и поэтому мой фильтр не применяется.

Как я могу использовать оба своих пользовательских отфильтрованных представления, одновременно не давая пользователю возможностивыбрать любое другое системное представление?

Моя единственная идея пока состоит в том, чтобы предоставить представление по умолчанию с фильтром, который всегда не возвращает записей, и установить его как единственный допустимый выбор представления.Это гарантирует, что пользователь сможет выбирать записи только в моем фильтрованном представлении.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Я нашел приемлемое решение для этого, которое я приведу здесь для других, и последует сообщение в блоге, на которое я буду ссылаться.

  1. Создание нового представления длясущность, которую вы хотите отфильтровать.Имя - это что-то контекстное, например Клиенты, отфильтрованные по любимому напитку .Мы назовем это представление FV.
  2. Добавьте атрибут поиска в вашу целевую форму и установите для представления по умолчанию значение FV
  3. Установите View Viewor на Off (что ранее вызывало у меня проблемы, нобыть «исправленным» в javascript)
  4. Используйте один из множества примеров кода для создания отфильтрованного поиска в javascript, в том числе в SDK.Однако вместо того, чтобы давать этому представлению новый GUID, присвойте ему GUID представления по умолчанию (в нашем случае это FV).Вы можете сделать это, вызвав lookup.getDefaultView () где lookup в целевом атрибуте lookup.

Теперь у вас будет поиск, у которого отключен выбор представления, но теперь он покажет ваши отфильтрованные результаты.

0 голосов
/ 28 сентября 2014

В дополнение к ответу Даррена.

Вы можете сделать те же шаги, не добавляя новый вид.

Просто получите указатель вида по умолчанию:

var availableDefaultViewId = Xrm.Page.getControl (lookupField) .getDefaultView ();

и затем установите его на свой новый FV:

Xrm.Page.getControl (lookupField) .addCustomView (availableDefaultViewId, entityName, viewDisplayName, fetchXml, layoutXml, true);

Но ваше viewDisplayName не будет работать, оно получит имя представления по умолчанию.

...