Compartilhar via


Como: Personalizar o layout de uma tabela individual usando um modelo de página personalizado

Quando você usa dados dinâmicos do ASP.NET, existem duas abordagens Geral à definição personalizada.Modelos de campo podem ser personalizados para comportamento específico de campo e modelos de página podem ser personalizados para comportamento específico da tabela.

A primeira abordagem é personalizar campos de dados em uma tabela criando modelos de campo personalizado.Você criar uma classe parcial cujo nome corresponde da classe de entidade que representa a tabela.Na classe parcial, você pode usar o UIHintAttribute atributo para especificar o nome do modelo de campo personalizado que é usado para exibição. Para obter mais informações, consulte Como: Personalizar a aparência do campo de dados e o comportamento em um controle de dados dinâmicos.

A segunda abordagem é criar uma subpasta na pasta DynamicData\CustomPages.O nome da subpasta corresponde o acessador de tabela na classe de contexto de dados da tabela que deseja personalizar.Você criar um modelo de página personalizado na pasta.Este tópico mostra como usar essa segunda abordagem.

Os modelos de página padrão funcionam para todas as tabelas e não usam informações específicas de esquema.No entanto, você pode usar as informações de esquema para exibir campos específicos quando você usa modelos de página personalizados para tabelas específicas.

Para criar um modelo de página personalizada

  1. Certifique-se de que a scaffolding é ativada.No arquivo global.asax, defina o ContextConfiguration.ScaffoldAllTables propriedade para true no MetaModelRegisterContext() método.

    O exemplo a seguir mostra o RegisterRoutes método que inclua uma telefonar para habilitar a scaffolding e ativar a ação da lista.

    Public Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        Dim model As New MetaModel
        model.RegisterContext(GetType(AdventureWorksLTDataContext), _
            New ContextConfiguration() With {.ScaffoldAllTables = True})
    
        routes.Add(New DynamicDataRoute("{table}/{action}.aspx") With { _
             .Constraints = New RouteValueDictionary(New With _
                {.Action = "List|Details|Edit|Insert"}), _
                 .Model = model})
    
    End Sub
    
    public static void RegisterRoutes(RouteCollection routes) {
         MetaModel model = new MetaModel();
    
        model.RegisterContext(typeof(AdventureWorksLTDataContext), 
            new ContextConfiguration() { ScaffoldAllTables = true });
    
         routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
         {
             Constraints = new RouteValueDictionary(new { action = 
                "List|Details|Edit|Insert" }),
                Model = model
            });
        }
    

    Para obter mais informações sobre como ativar a scaffolding, consulte Demonstra Passo a passo: Criando um novo site do Dynamic dados Using a scaffolding.

  2. Na pasta DynamicData\CustomPages, crie uma subpasta.Para o nome da pasta, use estas diretrizes:

    • Se o modelo de dados for baseado em LINQ to SQL, use o nome da tabela no contexto de dados sistema autônomo o nome da pasta.Por exemplo, para criar uma página personalizada para a tabela Produtos no banco de dados AdventureWorksLT, crie um diretório chamado DynamicData\CustomPages\Products.

    • Se o modelo de dados for baseado no ADO.NET entidade estrutura, use o nome da tabela contexto de objeto sistema autônomo o nome da pasta.Por exemplo, para criar uma página personalizada para a tabela Produtos no banco de dados AdventureWorksLT, crie um diretório chamado DynamicData\CustomPages\Product.

  3. Copie um modelo de página existente da pasta DynamicData\PageTemplates para a subpasta em DynamicData\CustomPages tem o nome do acessador tabela.

    Por exemplo, copie DynamicData\PageTemplates\lista.aspx para DynamicData\CustomPages\Products (para LINQ to SQL) ou para DynamicData\CustomPages\Product (para a entidade estrutura).

  4. Adicione suas personalizações ao modelo de página que você copiou na etapa anterior.

    O exemplo a seguir mostra a marcação para um título que foi alterado.

    <h2> Custom Pages Demo <%= table.DisplayName%></h2>
    
  5. Para testar o modelo personalizado, navegar até a tabela em um navegador e confirme se o modelo inclui as alterações.

    Por exemplo, navegar para a tabela Produtos.Você verá "Personalizar páginas Demo produto" (LINQ to SQL) e "Personalizada páginas demonstração do produto" (entidade estrutura).

Consulte também

Tarefas

Demonstra Passo a passo: Criando um novo site do Dynamic dados Using a scaffolding

Conceitos

Visão geral sobre modelos de página e scaffolding de dados dinâmicos do ASP.NET

Outros recursos

Usando dados dinâmicos do ASP.NET