Настройка уровня представления динамических данных ASP.NET

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

ПримечаниеПримечание

Сведения о настройке схемы данных см. в разделе Настройка уровня динамических данных ASP.NET.

В этом разделе содержатся следующие подразделы.

Платформа динамических данных позволяет настроить и расширить пользовательский интерфейс для визуализации таблицы. Разработчик может изменить шаблоны полей по умолчанию или создать новые шаблоны для задания способа визуализации таблиц.

Платформа динамических данных позволяет настраивать шаблоны страниц приведенными ниже способами.

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

  • Настройка макета для всех таблиц. Для этого следует настроить шаблоны сущностей по умолчанию. Эта настройка выполняется путем изменения шаблонов сущностей, которые находятся в папке DynamicData\EntityTemplates. Такая настройка предоставляет большую степень управления, чем настройка полей данных, и может быть полезна, когда планируется применение собственного пользовательского интерфейса к стандартным или пользовательским шаблонам страниц.

  • Настройка макета отдельной таблицы. Для этого следует создать пользовательские шаблоны сущностей для таблицы, макет которой планируется настроить, с использованием контекста именования:

    • при использовании модели данных LINQ to SQL для представления базы данных AdventureWorksLT шаблоны сущностей для таблицы Address должны называться Addresses.ascx, Addresses_Edit.ascx и Addresses_Insert.ascx;

    • при использовании модели данных ADO Entity Framework для представления базы данных AdventureWorksLT шаблоны сущностей для таблицы Address должны называться Address.ascx, Address_Edit.ascx и Address_Insert.ascx.

Эти пользовательские шаблоны должны находиться в папке DynamicData\EntityTemplates. На следующей иллюстрации показана строка таблицы "Адрес", настроенная с помощью пользовательского шаблона сущности.

Структура пользовательского шаблона сущности

Дополнительные сведения см. в разделе Пошаговое руководство. Настройка макета таблицы с помощью шаблонов сущностей.

Шаблоны полей являются пользовательскими элементами управления ASP.NET, с которыми платформа динамических данных сопоставляет типы данных из модели данных. Платформа динамических данных позволяет настраивать шаблоны полей приведенными ниже способами.

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

  • Настройка фильтра для определенного типа данных. Для этого следует изменить элементы управления в папке DynamicData\FilterTemplates.

  • Создание настраиваемого фильтра. Для этого нужно создать пользовательский элемент управления ASP.NET, производный от класса QueryableFilterUserControl. Этот подход используется для переопределения фильтра по умолчанию или, в случае его отсутствия, для создания фильтра типа данных. Проект Visual Studio с исходным кодом этого примера доступен на следующей странице: Scaffolding Dynamic Data.

Дополнительные сведения см. в разделе Пошаговое руководство. Фильтрация строк в таблицах, содержащих отношения "родитель-потомок".

Платформа динамических данных использует маршрутизацию ASP.NET для сопоставления и обработки запросов URL-адресов. Маршруты определяются в файле Global.asax. По умолчанию платформа динамических данных использует для каждого запроса (список, выбор, правка и вставка) отдельный шаблон. (Функция удаления присутствует на странице "Список" и на странице "Сведения", поэтому для операций удаления отсутствует отдельный шаблон страницы.)

Маршруты по умолчанию можно настраивать. Кроме того, можно задавать другие шаблоны страниц или параметры передачи с помощью маршрутов, а не значений строки запроса. Дополнительные сведения о маршрутах см. в разделе Маршрутизация ASP.NET.

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

  • Использование одного шаблона страницы для всех операций. Можно настроить маршруты таким образом, что все веб-запросы (операции) будут приходить на одну страницу. В следующем примере показывается настроенный маршрут, который позволяет выполнение всех операций на одной странице для указанной таблицы. Второй маршрут обеспечивает странице возможность перехода к просмотру сведений записи, например перехода к связанной таблице на основе внешнего ключа.

    
    routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx")
    {
        Action = PageAction.List,
        ViewName = "ListDetails",
        Model = model
    });
    
    routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx")
    {
        Action = PageAction.Details,
        ViewName = "ListDetails",
        Model = model
    });
    
    
    
  • Создание маршрута для отдельной таблицы.

    Маршруты обрабатываются в порядке их задания, поэтому необходимо добавлять маршруты в порядке от самого частного до самого общего. В следующем примере показано, как задать другой шаблон страницы для таблицы Products базы данных AdventureWorks.

    
    routes.Add(new DynamicDataRoute("Products/{action}.aspx")
    {
        ViewName = "ListDetails",
        Table = "Products",
        Model = model
    });
    
    routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
    {
        Constraints = new RouteValueDictionary(
          new { action = "List|Details|Edit|Insert" }),
        Model = model
    });
    
    
    

К началу

Показ: