Partilhar via


Como: Criar modelos dinamicamente em controles DataList do servidor Web

Modelos não tem de ser atribuídos no tempo de design.Em algumas situações, você pode ser capaz de formatar o modelo em tempo de design, mas alterações que você sabe que fará durante o tempo de execução são tão extensas que carregá-las em um novo modelo em tempo de execução simplifica a programação.Em outros casos, você pode ter vários modelos possíveis mas deseja alterar o modelo em tempo de execução.

Para criar um arquivo de definição de modelo

  1. Criar um novo arquivo de texto com uma extensão.ascx.

  2. Adicionar instruções de definição de modelo ao arquivo de modelo e salvá-lo usando a mesma marcação que você deseja usar em qualquer modelo declarativo.

    O exemplo a seguir mostra o conteúdo de um arquivo .ascx com a marcação de um modelo que contém os controles ligados a dados Label.A associação de dados será resolvida em tempo de execução contra a fonte de dados o que é vinculado ao controle DataList.

    Name: <asp:Label ID="CategoryNameLabel"  
              Text='<%# Eval("CategoryName") %>'>
          </asp:Label>
    <br />
    Description: <asp:Label ID="DescriptionLabel"  
              Text='<%# Eval("Description") %>'>
          </asp:Label>
    

Para criar modelos dinamicamente

  • Adicione código à sua página Web Forms para carregar o modelo usando o método LoadTemplate.Este método lê uma definição de modelo a partir de um arquivo e cria um objeto ITemplate.Em seguida, você pode atribuir esse objeto para qualquer um dos modelos em um controle DataList.

    O código a seguir usa o manipulador de eventos Page_Init para carregar um modelo criado e mostrado acima com o nome de NewTemplate.ascx.

    Protected Sub Page_Init(ByVal Sender As System.Object, _
            ByVal e As System.EventArgs)
        DataList1.AlternatingItemTemplate = _
            Page.LoadTemplate("NewTemplate.ascx")
    End Sub
    
    protected void Page_Init(object sender, EventArgs e)
    {
        DataList1.AlternatingItemTemplate = 
            Page.LoadTemplate("NewTemplate.ascx");
    }
    

Consulte também

Referência

Visão geral do controle DataList do servidor Web