2012-03-21 1 views
2

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

Если я устанавливаю View Selector опцию Off на поиске в Form Designer это правильно отключает выбор вида, но мой фильтруются вид также входят в этом исключении, и поэтому мой фильтр не применяются.

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

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

ответ

1

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

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

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

0

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

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

Просто получить GUID зрения по умолчанию:

вар availableDefaultViewId = Xrm.Page.getControl (lookupField) .getDefaultView();

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

Xrm.Page.getControl (lookupField) .addCustomView (availableDefaultViewId, EntityName, viewDisplayName, fetchXml, layoutXml, истинный);

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