Compartir a través de


Ejemplo de generador de controles personalizado

En el siguiente ejemplo se define un generador de controles personalizado (NoWhiteSpaceControlBuilder) y se le asocia un control personalizado (NoWhiteSpaceControl). A efectos de comparación, también se incluye un segundo control que no tiene un generador personalizado. Para generar este ejemplo, vea las instrucciones de Ejemplos de controles de servidor.

namespace CustomControls 
{  
   using System;
   using System.Web.UI;
   
   public class NoWhiteSpaceControlBuilder : ControlBuilder 
   {  
      public override bool AllowWhitespaceLiterals() 
      {
         return false;
      }
   }
   
   [ ControlBuilderAttribute(typeof(NoWhiteSpaceControlBuilder))]
   public class NoWhiteSpaceControl : Control 
   {}
   
   public class WhiteSpaceControl : Control 
   {}
   
}
[Visual Basic]
Option Explicit
Option Strict

Imports System
Imports System.Web.UI

Namespace CustomControls
   Public Class NoWhiteSpaceControlBuilder
      Inherits ControlBuilder
      
      Public Overrides Function AllowWhitespaceLiterals() As Boolean
         Return False
      End Function
   End Class
   
   <ControlBuilderAttribute(GetType(NoWhiteSpaceControlBuilder))> _
   Public Class NoWhiteSpaceControl
      Inherits Control
   End Class
   
   Public Class WhiteSpaceControl
      Inherits Control
   End Class
End Namespace

Página de prueba para el ejemplo de generador de controles personalizado

En la siguiente página .aspx se utiliza el control personalizado NoWhiteSpaceControl, que tiene un generador de controles personalizado. La página tiene también un control (WhiteSpaceControl) que tiene el generador de controles predeterminado.

<%@ Register TagPrefix="Custom" Namespace="CustomControls" Assembly = "CustomControls" %>

<html>
<body>         
<form  runat=server>
<pre>             
<Custom:NoWhiteSpaceControl Id = "NoSpace" runat=server>
This control does not allow white spaces.
<asp:Label runat = server id = "nospacel1" Text = "First label inside no white space control." />

<asp:Label runat = server id = "nospacel2" Text = "Second label after white space ." />
</Custom:NoWhiteSpaceControl>
 
<br><br>             
<Custom:WhiteSpaceControl Id = "Space" runat=server>
This control allows white spaces.
<asp:Label runat = server id = "spacel1" Text = "First label inside white space control." />

 
<asp:Label runat = server id = "spacel2" Text = "Second label after white space." />
</Custom:WhiteSpaceControl>
</pre>            
</form>              
</body>           
</html>

Vea también

Introducción al generador de controles | ControlBuilderAttribute | Análisis de controles, ParseChildrenAttribute y generadores de controles