Настройки технологических форм web-приложений осуществляются с помощью сервиса DynamicPageTuner
. Класс зарегистрирован в секции unity
.
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
<...>
<container>
<...>
<!-- Конфигурация сервиса для кастомизации технологических форм в проекте. -->
<register type="NewPlatform.Flexberry.Web.Page.IDynamicPageTuner, ICSSoft.STORMNET.Web.AjaxControls" mapTo="WebFormsTestStand.DynamicPageTuner, TestStand(ASP.NET Application)">
<lifetime type="singleton" />
<constructor />
</register>
<...>
</container>
</unity>
С его помощью можно:
- изменить внешний вид технологических форм,
- настроить заголовки форм,
- отложить загрузку списка,
- настроить порядок и отображение столбцов и многое другое.
Пример отложенной загрузки данных
public class DynamicPageTuner : IDynamicPageTuner, IDynamicPageWolvTuner
{
/// <summary>
/// Пример реализации метода настройки <see cref="WebObjectListView" /> на технологических страницах.
/// </summary>
/// <param name="pageId">Идентификатор страницы.</param>
/// <param name="wolv">Экземпляр <see cref="WebObjectListView" /> для настройки.</param>
public void Tune(DynamicPageIdentifier pageId, WebObjectListView wolv)
{
// Для списка классов включена отложенная загрузка данных,
// для остальных страниц ничего не меняется.
if (pageId == DynamicPageIdentifier.SecurityClassesList)
{
if (!wolv.Page.IsPostBack)
wolv.SkipDataLoad = true;
}
}
}
Пример настройки отображения столбцов
public class DynamicPageTuner : IDynamicPageTuner, IDynamicPageWolvTuner
{
// Настройка порядка и количества столбцов на списке пользователей.
if (pageId == DynamicPageIdentifier.SecurityUsersList)
{
wolv.ColumnsConfig.Add(new ColumnsConfig
(Information.ExtractPropertyPath<Agent>(x => x.Login), true));
wolv.ColumnsConfig.Add(new ColumnsConfig
(Information.ExtractPropertyPath<Agent>(x => x.Name), true));
wolv.ColumnsConfig.Add(new ColumnsConfig
(Information.ExtractPropertyPath<Agent>(x => x.Creator), true));
wolv.ColumnsConfig.Add(new ColumnsConfig
(Information.ExtractPropertyPath<Agent>(x => x.CreateTime), true));
wolv.ColumnsConfig.Add(new ColumnsConfig
(Information.ExtractPropertyPath<Agent>(x => x.Enabled), true));
}
}
Выглядит следующим образом: