Compartilhar via


Sintaxe de controle de servidor personalizado

Sintaxe de controle de servidor personalizado é usado para declarar controles de usuário e controles de servidor personalizados sistema autônomo elementos de marcação nos arquivos de aplicativo ASP.NET, incluindo páginas da Web, controles de usuário e páginas mestras. Essa sintaxe é quase idêntica à sintaxe usada para declarar todos os controles de servidor ASP.NET, exceto pelo fato de que para controles personalizados e de usuário normalmente declarar um prefixo de marca exclusivo e um nome de marcação que corresponde ao controle.

<tagprefix:tagname id="OptionalID"
   attributename="value"
   eventname="eventhandlermethod"
   runat="server" />
OR
<tagprefix:tagname id="OptionalID"
   runat="server" />

Atributos

  • tagprefix
    Um alias para totalmente qualificado namespace dos elementos de marcação usados na página. O valor do alias é arbitrário, mas fornece uma forma abreviada de associar a marcação para um controle personalizado ou um controle de usuário com o namespace os outros elementos de marcação declarado em um arquivo do ASP.NET.

  • tagname
    Para um controle personalizado, a tagname refere-se ao nome de um tipo para a qual ASP.NET criará uma instância de time de execução. Para um controle de usuário, a tagname controle é mapeado para o arquivo de fonte associado que define o usuário e por sua vez, esse arquivo define o tipo para o qual o ASP.NET cria uma instância.

  • id
    Um identificador exclusivo que permite a referência através de programação para o controle.

  • attributename
    O nome de um atributo, que corresponde a uma propriedade no controle.

  • value
    O valor atribuído ao atributo (propriedade).

  • eventname
    O nome de um evento no controle.

  • eventhandlermethod
    O nome de um manipulador de eventos definido para manipular o evento especificado para o controle.

Comentários

Use servidor personalizado controle sintaxe para declarar controles de usuário e controles de servidor personalizado dentro do corpo de uma página da Web do ASP.NET. Para que essa sintaxe funcionar, o controle deve ser registrado na página ou em um arquivo de configuração (você pode registrar um controle em todas as páginas de um aplicativo, adicionando-o ao <controls> do arquivo Web.config). Você pode registrar um controle em uma página individual, usando o @ Register diretiva.

A marca de abertura de um elemento para um usuário ou controle personalizado deve incluir um runat="server" atributo/valor emparelhar. Para habilitar a referência através de programação do controle, opcionalmente, você pode especificar um valor exclusivo para o id atributo.

As propriedades que tiver criado um usuário ou controle de servidor personalizado podem ser expostas declarativamente na marca de abertura do controle de servidor. Basta declarar a propriedade sistema autônomo um atributo e atribua a ela um valor. Por exemplo, se você criar um controle de caixa de texto personalizado com um width propriedade, declarando width="50" na marca de abertura do controle define largura de exibição do controle de servidor como 50 pixels.

Em alguns casos, os atributos podem ser objetos que possuem suas próprias propriedades. Nesse caso, inclua o nome de propriedade na declaração. Por exemplo, se você criar um controle de caixa de texto personalizado que inclui um font atributo, ele pode incluir uma name propriedade. Em seguida, você pode declarar a propriedade na marca de abertura do controle de servidor sistema autônomo font-name="Arial". Para obter mais informações sobre como desenvolver controles de servidor personalizados com propriedades, consulte Propriedades e Subpropriedades Simples de Controle de Servidor.

É possível declarar eventos com controles de servidor personalizados e controles de usuário da mesma forma que faria com qualquer controle de servidor ASP.NET. Especifique a ligação do evento na marca de abertura do controle do servidor com um atributo e valor. Para obter mais informações sobre autoria de controles de servidor personalizados que oferecem suporte a eventos, consulte Tratamento de Evento de servidor em páginas da Web ASP.NET.

Você pode usar e desenvolver controles de servidor personalizados que oferecem suporte a embutido modelos. Para obter detalhes sobre como declarar modelos em um controle de servidor personalizado, consulte Controle de servidor embutido modelo sintaxe. Para saber como criar controles de servidor personalizados que oferecem suporte a modelos in-line, consulte Como: Criar controles de usuário do ASP.NET modelado.

Exemplo

O exemplo de código a seguir demonstra como você pode registrar e declarar um controle de servidor personalizado em uma página da Web do ASP.NET. A primeira seção do código cria uma classe pública derivada o Button classe. A segunda parte do código é uma página da Web que hospeda o botão personalizado. Notice that the Web page uses the @ Register directive to register the namespace for the control and to set the tagprefix attribute. O controle é referenciado na página usando o tagprefix valor e nome de classe do controle, separados por dois-pontos (:).

No exemplo de código seja executado, você deve compilar esse controle personalizado. Você pode compilá-lo explicitamente e colocar o assembly resultante na pasta Bin do seu site da Web ou o cache global de assemblies. Como alternativa, você pode colocar o código-fonte em seu site na pasta App_Code, onde ele irá ser compilada em tempo de execução dinamicamente. This code example uses dynamic compilation, which is why the @ Register directive in the page does not need to declare an Assembly attribute (because the source is dynamically compiled at run time). Para uma explicação passo a passo que demonstre como compilar, consulte Demonstra Passo a passo: Desenvolvendo e usando um Controlarar de servidor Personalizar.

Observação de segurançaObservação de segurança:

Este exemplo tem uma caixa de texto que aceita entrada do usuário, que é uma ameaça potencial de segurança. Por padrão, páginas Web ASP.NET validam se as entradas de usuário não incluem scripts ou elementos HTML. Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.

// A custom Button control to reference in the page.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Security.Permissions
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand,
  Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class CustomButton : Button
  {
    public CustomButton()
    {
      this.Text = "Click Here";
    }
  }
}

<!-- A page that references the custom control. -->
<%@Page language="C#" %>
<!-- This directive does not require the assembly attribute 
     because the source file is in the App_Code directory, 
     so it gets dynamically compiled with the page. -->
<%@ Register TagPrefix="custom"      namespace="Samples.AspNet.CS.Controls" %>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html>   
 <script runat="server">
     private void custButton_Click(Object sender, EventArgs e)
     {
       TextBox.BackColor = System.Drawing.Color.Green;
       TextBox.Text = "You clicked the button";
     }       
 </script>
 <body>      
    <form id="Form1" runat=server>
       Here is the custom button.<br>
       <custom:CustomButton runat="server" id="custButton"          onclick="custButton_Click" /> 
       <br>
       <br>
       <asp:TextBox id = "TextBox" Text="Click the button"
        Width = "200" BackColor="Cyan" runat="server" /> 
       <br>      
    </form>         
  </body>          
</html>
' A custom Button control to reference in the page.
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.Configuration
Imports System.Data.Sql
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class CustomButton
    Inherits Button

    Public Sub New()
      Me.Text = "Click Here"
    End Sub

  End Class

End Namespace
<!-- A page that references the custom control. -->
<%@ Page Language="VB" %>
<!-- This directive does not require the assembly attribute 
     because the source file is in the App_Code directory, 
     so it gets dynamically compiled with the page. -->
<%@ Register TagPrefix="custom"    namespace="Samples.AspNet.VB.Controls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>   
 <script runat="server">
   Sub custButton_Click(ByVal sender As Object, _
    ByVal e As EventArgs)
     TextBox.BackColor = Drawing.Color.Green
     TextBox.Text = "You clicked the button."
   End Sub
 </script>
 <body>      
    <form id="Form1" runat=server>
       Here is the custom button.<br>
       <custom:CustomButton runat="server" id="custButton"          onclick="custButton_Click" /> 
       <br>
       <br>
       <asp:TextBox id = "TextBox" Text="Click the button"
        Width = "200" BackColor="Cyan" runat="server" /> 
       <br>      
    </form>         
  </body>          
</html>

Consulte também

Conceitos

Visão geral da sintaxe de página da Web ASP.NET