visão geral dos controles do servidor ASP.NET

Este artigo apresenta ASP.NET controles de servidor, como controles de servidor HTML, controles de servidor Web, controles de lista etc.

Versão original do produto: ASP.NET
Número de KB original: 306459

Este artigo refere-se aos seguintes namespaces da Biblioteca de Classes da Microsoft .NET Framework:

  • System.Web.UI.HtmlControls.HtmlControl
  • System.Web.UI.WebControls.WebControl

Controles de servidor na estrutura de página ASP.NET

A estrutura de página ASP.NET inclui uma série de controles de servidor internos projetados para fornecer um modelo de programação mais estruturado para a Web. Esses controles fornecem os seguintes recursos:

  • Gerenciamento automático de estado.
  • Acesso simples a valores de objeto sem precisar usar o Request objeto.
  • Capacidade de reagir a eventos no código do lado do servidor para criar aplicativos mais estruturados.
  • Abordagem comum para criar interfaces de usuário para páginas da Web.
  • A saída é personalizada automaticamente com base nos recursos do navegador.

Além dos controles internos, a estrutura de página ASP.NET também fornece a capacidade de criar controles de usuário e controles personalizados. Controles de usuário e controles personalizados podem aprimorar e estender os controles existentes para criar uma interface de usuário muito mais rica.

Controles de servidor HTML

Os controles do servidor HTML são elementos HTML que incluem um runat=server atributo. Os controles de servidor HTML têm a mesma saída HTML e as mesmas propriedades que suas marcas HTML correspondentes. Além disso, os controles de servidor HTML fornecem eventos automáticos de gerenciamento de estado e do lado do servidor. Os controles de servidor HTML oferecem as seguintes vantagens:

  • Os controles do servidor HTML mapeiam um para um com suas marcas HTML correspondentes.
  • Quando o aplicativo ASP.NET é compilado, os controles do servidor HTML com o runat=server atributo são compilados no assembly.
  • A maioria dos controles inclui um OnServerEvent para o evento mais usado para o controle. Por exemplo, o <input type=button> controle tem um OnServerClick evento.
  • As marcas HTML que não são implementadas como controles específicos do servidor HTML ainda podem ser usadas no lado do servidor; no entanto, eles são adicionados ao assembly como HtmlGenericControl.
  • Quando a página ASP.NET é repostada, os controles do servidor HTML mantêm seus valores.

A System.Web.UI.HtmlControls.HtmlControl classe base contém todas as propriedades comuns. Os controles de servidor HTML derivam dessa classe.

Para usar um controle de servidor HTML, use a seguinte sintaxe (que usa o HtmlInputText controle como exemplo):

<input type="text" value="hello world" runat=server />

Para obter mais informações sobre controles de servidor HTML individuais que estão disponíveis no ASP.NET, confira os seguintes sites da Web:

Controles do servidor Web

Os controles Web são semelhantes aos controles do servidor HTML, como Button, TextBox e Hyperlink, exceto que os controles Web têm um conjunto padronizado de nomes de propriedades. Os controles do servidor Web oferecem as seguintes vantagens:

  • Facilite a criação de ferramentas ou aplicativos para fabricantes e desenvolvedores que geram automaticamente a interface do usuário.
  • Simplifique o processo de criação de formulários Web interativos, o que requer menos conhecimento de como os controles HTML funcionam e tornam a tarefa de usá-los menos propensos a erros.

A System.Web.UI.WebControls.WebControl classe base contém todas as propriedades comuns. A maioria dos controles do servidor Web deriva dessa classe.

Para usar um controle de servidor Web, use a seguinte sintaxe (que usa o controle TextBox como exemplo):

<asp:textbox text="hello world" runat=server />

Os controles do servidor Web podem ser divididos em quatro categorias:

  • Controles Web Básicos
  • Controles de validação
  • Controles de lista
  • Controles avançados

Controles Web básicos

Os controles Web básicos fornecem a mesma funcionalidade que seus equivalentes de controle de servidor HTML. No entanto, os controles Web básicos incluem métodos, eventos e propriedades adicionais em relação aos quais você pode programar.

Para obter mais informações sobre controles Web individuais que estão disponíveis no ASP.NET, confira os seguintes sites da Web:

Controles de validação

Os controles de validação são usados para validar os valores inseridos em outros controles da página. Os controles de validação executam a validação do lado do cliente, a validação do lado do servidor ou ambos, dependendo dos recursos do navegador no qual a página é exibida. Os controles de validação oferecem as seguintes vantagens:

  • Você pode associar um ou mais controles de validação a cada controle que deseja validar.
  • A validação é executada quando o formulário de página é enviado.
  • Você pode especificar programaticamente se a validação deve ocorrer, o que é útil se você quiser fornecer um botão cancelar para que o usuário possa sair sem precisar preencher dados válidos em todos os campos.
  • Os controles de validação detectam automaticamente se a validação deve ser executada no lado do cliente ou no lado do servidor.

Observação

Uma validação do lado do cliente captura erros antes da conclusão de uma operação de postback. Portanto, se você tiver combinações de controles de validação do lado do cliente e do servidor em uma única página, a validação do lado do servidor será preemptada se uma validação do lado do cliente falhar. Para obter mais informações sobre controles de validação individuais disponíveis em ASP.NET, consulte os seguintes sites da Web:

Controles de lista

Os controles de lista são controles especiais de servidor Web que dão suporte à associação a coleções. Você pode usar controles de lista para exibir linhas de dados em um formato personalizado de modelo. Todos os controles de lista expõem as propriedades DataSource e DataMember, que são usadas para associar a coleções.

Os controles de lista só podem ser associados a coleções que dão suporte às interfaces IEnumerable, ICollection ou IListSource. Por exemplo, uma página de exemplo do .NET do Visual C# aparece da seguinte maneira:

<%@ Page Language="C#" %>
<script runat="server">
    Public void Page_Load()
    {
        String[] myStringArray = new String[] {"one","two","three"};
        rptr.DataSource = myStringArray;
        rptr.DataBind();
    }
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

Uma página de exemplo do .NET do Visual Basic é exibida da seguinte maneira:

<%@ Page Language="vb" %>
<script runat="server">
    public sub Page_Load()
        Dim myStringArray as String()
        myStringArray = new String() {"one","two","three"}
        rptr.DataSource = myStringArray
        rptr.DataBind()
    end sub
</script>
<html>
    <body>
        <asp:repeater id=rptr runat="server">
            <itemtemplate><%# Container.DataItem %><br></itemtemplate>
        </asp:repeater>
    </body>
</html>

A saída é exibida da seguinte maneira:

  • um
  • Dois
  • three

Para obter mais informações sobre controles de lista individuais disponíveis no ASP.NET, confira os seguintes sites da Web:

Controles avançados

Além dos controles anteriores, a estrutura de página ASP.NET fornece alguns controles específicos da tarefa chamados controles avançados. Os controles avançados são criados com vários elementos HTML e contêm funcionalidade avançada. Exemplos de controles avançados são o controle Calendário e o controle AdRotator.

Para obter mais informações sobre controles avançados individuais que estão disponíveis no ASP.NET, confira os seguintes sites da Web:

Controles de usuário

Muitas vezes, talvez você queira reutilizar a interface do usuário do Seu Formulário Web sem precisar escrever nenhum código extra. ASP.NET permite que você faça isso convertendo seu Web Forms em controles de usuário. Os controles de usuário, que têm a extensão de arquivo.ascx, podem ser usados várias vezes em um único Formulário Web.

Para converter um Formulário Web em um controle de usuário, siga estas etapas:

  1. Remova todas as <html>marcas , <head>, <body>e <form> .
  2. Se a @ Page diretiva aparecer na página, altere-a para @ Control.
  3. Inclua um className atributo na @ Control diretiva para que o controle de usuário seja digitado fortemente quando você o instanciar.
  4. Dê ao controle um nome de arquivo descritivo e altere a extensão de arquivo de .aspx para .ascx.

Para obter mais informações sobre controles de usuário, consulte Web Forms Controles de Usuário.

Controles personalizados

Além dos controles Web internos, ASP.NET também permite que você crie seus próprios controles personalizados. Pode ser útil desenvolver controles personalizados se você se deparar com um destes cenários:

  • Você precisa combinar a funcionalidade de dois ou mais controles Web internos.
  • Você precisa estender a funcionalidade de um controle interno.
  • Você precisa de um controle diferente de qualquer um dos controles existentes atualmente.

Para obter mais informações sobre o desenvolvimento de controles personalizados, confira os seguintes tópicos: