[ELMA4] Сворачиваемая панель (CollapsiblePanel)
Контент с заголовком, который может сворачиваться/разворачиваться при нажатии на заголовок. Имеет следующие параметры:
Id
– идентификатор панели на странице.
Заголовок:
Header
– простой текстовый заголовок;LinkHeader
– ссылка, по которой осуществляется переход при нажатии на заголовок;HeaderExt
– заголовок, который может содержать html-разметку;ImageUrl
– иконка перед заголовком.
Контент. Существует два варианта задания контента панели:
Content
– контент панели, который задается при определении панели. Представляет собой html-разметку;Url
– ссылка на контент панели для его динамической загрузки.
Html-атрибуты:
Style
– html-атрибуты;Class
– html-class, который добавляется на заголовок.
Состояние панели:
Expanded
– флаг состояния панели. Если true, то панель развернута, false – свернута;SaveState
– флаг, задающий возможность сохранения состояния панели. Если установлен true, то при следующем открытии страницы с панелью она будет развернута/свернута в зависимости от ее предыдущего состояния;OnExpand
– JavaScript функция, которая срабатывает при развертывании/свертывании панели.
Существует несколько способов объявления панели в зависимости от контента:
1.Контент передается в билдер панели, в метод Content. Нельзя использовать этот способ, если панель объявляется внутри обертки @<text></text>
.
@(Html.CollapsiblePanel()
.Id("ExamplePanel")
.Header(SR.T("Дополнительная информация"))
.SaveState(true)
.Expanded(true)
.Class("separator-gray")
.Content(@<text><div>Контент</div></text>).Render())
2. Контент панели оборачивается в директиву using
. Нельзя использовать этот способ, если панель объявляется внутри обертки @<text></text>
.
var cp = new CollapsiblePanel()
{
Id = "ExamplePanel",
Header = SR.T("Дополнительная информация"),
SaveState = true,
Expanded = true,
Class = "separator-gray"
};
@using (Html.CollapsiblePanel(cp))
{
<div>Контент</div>
}
3. Панель объявляется с помощью методов Html.CollapsiblePanelBegin
и Html.CollapsiblePanelEnd
, между которыми располагается контент панели. Это единственный способ, который можно использовать, если панель объявляется внутри обертки @<text></text>
.
var cp = new CollapsiblePanel()
{
Id = "ExamplePanel",
Header = SR.T("Дополнительная информация"),
SaveState = true,
Expanded = true,
Class = "separator-gray"
};
@Html.CollapsiblePanelBegin(cp)
<div>Контент</div>
@Html.CollapsiblePanelEnd(cp)
Основные изменения в сворачиваемых панелях в ELMA4 по сравнению с ELMA3
1. Внешний вид.
Cворачиваемая панель в ELMA3:
Cворачиваемая панель в ELMA4:
2. Использование серого цвета заголовка панелей для соответствия общему стилю.
// bad
@(Html.CollapsiblePanel()
.Header(SR.T("Панель"))
.Class("separator-red")
.Content(@<text><div>Контент</div></text>).Render())
// good
@(Html.CollapsiblePanel()
.Header(SR.T("Панель"))
.Class("separator-gray")
.Content(@<text><div>Контент</div></text>).Render())
3. Отступы контента панелей изменились на 16px сверху и снизу, 8px по бокам.