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

В этом пошаговом руководстве показывается, как создать пользовательский шаблон сущности, чтобы определить структуру конкретной таблицы в проекте платформы динамических данных. Шаблоны сущностей работают с LINQ to SQL и с ADO.NET Entity Framework.

Проект Visual Studio с исходным кодом этого примера доступен на следующей странице: Scaffolding Dynamic Data.

На следующем рисунке представлена структура по умолчанию для сущности (строка данных).

Структура шаблона сущностей по умолчанию

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

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

В этом руководстве будет показано, как создать пользовательский шаблон сущности для отображения таблицы Address из образца базы данных AdventureWorksLT, используя модель данных ADO.NET Entity Framework. Шаблоны сущности также работают с LINQ to SQL. Пользовательский шаблон сущности, который будет создан, изменяет структуру полей и внешний вид меток полей, как показано на предыдущем рисунке.

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

  • Пользовательские шаблоны изменения и вставки для таблицы Address (Адрес) базы данных AdventureWorksLT. В этом пошаговом руководстве пользовательские шаблоны изменения и вставки создаваться не будут, но если загрузить пример кода, можно будет изучить шаблоны изменения и вставки, определенные в примере, и поработать с ними.

  • Пользовательская страница AddressCustom.aspx, использующая шаблоны сущностей Address.

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

Создание пользовательского шаблона сущности для таблицы Address

  1. В обозревателе решений откройте узел DynamicData, щелкните правой кнопкой мыши папку EntityTemplates, выберите команду Добавить и выберите Новый элемент.

  2. В разделе Установленные шаблоны Visual Studio выберите Пользовательский веб-элемент управления.

  3. В поле Имя введите имя сущности модели данных, представляющей таблицу Address.

    Для LINQ to SQL и для модели данных ADO.NET Entity Framework введите имя Addresses.ascx. По умолчанию эти модели данных создают имя для сущности, использующее множественное число имени таблицы (например, "Addresses" для таблицы Address).

    Если при работе с моделью данных ADO.NET Entity Framework нужно работать с сущностью адреса, использующему имя в единственном числе, снимите флажок используйте созданные имена объектов в единственном или множественном числе, а затем введите имя Address.ascx.

  4. В ASCX-файле введите следующую разметку, чтобы создать структуру таблицы Address:

    <tr>
      <td class="DDLightHeader">
            <asp:Label ID="Label1" runat="server" Text="Address" />
      </td>
      <td>
        <asp:DynamicControl ID="DynamicControl1" runat="server" 
            DataField="AddressLine1" />
      </td>
    </tr>
    <tr>
      <td class="DDLightHeader">
        <asp:Label ID="Label2" runat="server" Text="City" />
      </td>
      <td>
        <asp:DynamicControl ID="DynamicControl3" runat="server" 
            DataField="City" />
      </td>
      <td class="DDLightHeader">
        <asp:Label ID="Label3" runat="server" 
            Text="State/Province" />
      </td>
      <td>
        <asp:DynamicControl ID="DynamicControl4" runat="server" 
            DataField="StateProvince" />
      </td>
    </tr>
    <tr>
      <td class="DDLightHeader">
        <asp:Label ID="Label4" runat="server" Text="Country/Region" />
      </td>
      <td>
        <asp:DynamicControl ID="DynamicControl5" runat="server" 
            DataField="CountryRegion" />
      </td>
      <td class="DDLightHeader">
        <asp:Label ID="Label5" runat="server" Text="Postal Code" />
      </td>
      <td>
        <asp:DynamicControl ID="DynamicControl6" runat="server" 
            DataField="PostalCode" />
      </td>
    </tr>;
    
  5. В файле класса для страницы измените базовый класс с UserControl на EntityTemplateUserControl.

Теперь можно проверить работу только что созданного шаблона сущности для таблицы Address.

Проверка шаблона сущности для таблицы Address

  1. В Обозревателе решений щелкните правой кнопкой мыши страницу Default.aspx, после чего выберите команду Просмотр в обозревателе.

    На странице отображается список таблиц, добавленных в модель данных.

  2. Щелкните таблицу Address.

  3. Щелкните ссылку Сведения для одной из отображаемых строк.

    Появится страница, содержащая данные из выбранной строки. Обратите внимание, что структура представлена в формате, определенном в шаблоне сущности для таблицы Address.

  4. Щелкните ссылку Изменить.

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

Пользовательские страницы для таблицы Address, содержащие разметку для использования элемента управления DynamicEntity, также будут использовать шаблон сущности для таблицы Address. Например, загружаемый проект содержит страницу AddressCustom.aspx, использующую шаблон сущности для страницы Address. Загружая и устанавливая пример проекта, можно будет увидеть, как используется шаблон сущности.

Проверка шаблонов сущности для таблицы Address со страницей AddressCustom.aspx в загруженном примере

  • В Обозревателе решений щелкните правой кнопкой мыши страницу AddressCustom.aspx, а затем выберите команду Просмотр в обозревателе.

    На этой странице данные об адресах показываются с помощью шаблона сущности для адреса. Можно будет понять, что шаблон сущности адреса используется структурой, пользовательскими стилями шрифтов и цветами шрифтов. Страница AddressCustom.aspx показывает, что этот же пользовательский шаблон сущности может быть использован шаблонами страницы по умолчанию и пользовательскими страницами.

Чтобы создать пользовательские шаблоны изменения и вставки для таблицы Address, можно повторить процедуру, использованную в данном руководстве для создания пользовательского представления страницы. При использовании модели данных по умолчанию в LINQ to SQL или Entity Framework, создаваемой для базы данных AdventureWorksLT, шаблоны сущностей изменения и вставки для таблицы Address называются Addresses_Edit.ascx и Addresses_Insert.ascx. Дополнительные сведения о настройке шаблонов полей см. в разделе Практическое руководство. Настройка шаблонов полей по умолчанию платформы динамических данных ASP.NET.

Показ: