Фильтрованный поиск не работает, когда для параметра «Выбор вида» установлено значение «Выкл.»

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

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

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

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


person Darren Lewis    schedule 21.03.2012    source источник


Ответы (2)


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

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

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

person Darren Lewis    schedule 22.03.2012

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

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

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

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

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

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

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

person AJ AJ    schedule 28.09.2014