MasterDetail
Контрол обеспечивает связь между двумя контролами для отображения подробной информации по выбранному элементу.
В простейшем случае контрол может применяться для отображения телефонного справочника, когда слева — ФИО, а справа — подробная информация по выбранному человеку — его телефон, адрес, почта и т.п.
MasterDetail может применяться и для реализации более сложных сценариев, например, для реализации сценария "Реестр задач", как в примере ниже. В таком случае в master отображается список папок с задачами, а в detail — содержимое выбранной папки.
Документация API Спецификация Axure
Конфигурация
Для настройки контрола доступны 2 основные опции:
- master — задает шаблон контента
master
.
Для обеспечения связи сdetail
необходимо, чтобы контрол внутри указанного шаблона при смене элемента, требующего детализации, порождал событиеselectedMasterValueChanged
.
Учитывая, что достаточно популярен сценарий, при котором вmaster
используется списочный контрол, был предусмотрен специальный контейнерControls/masterDetail:List
, в который оборачивается списочный контрол, умеющий порождать событие markedKeyChanged при смене выбранной записи. - detail — задает шаблон контента
detail
. В переданный шаблон приходит параметрselectedMasterValue
, который можно использовать для фильтрации данных согласно выбранному вmaster
элементу.
Обратите внимание!
У списочных контролов предусмотрена опция style, позволяющая устанавливать режим отображения "master", специально предназначенный для использования в MasterDetail
.
Настройка движения границ
Контрол предоставляет возможность динамического изменения размеров master'а. Параметр, выставленный пользователем, запоминается в истории. При повторном открытии master'а используется сохраненное значение.
Чтобы включить функционал движения границ, необходимо задать опции:
- propStorageId — уникальный идентификатор для сохранения конфигурации в хранилище данных.
- masterWidth — ширина контентной области, применяемая при построении контрола.
- masterMinWidth — минимально допустимая ширина контентной области контрола.
- masterMaxWidth — максимально допустимая ширина контентной области контрола.