Partager via


Exemple de générateur de contrôles personnalisé

L'exemple suivant définit un générateur de contrôles personnalisé (NoWhiteSpaceControlBuilder) et l'associe à un contrôle personnalisé (NoWhiteSpaceControl). À des fins de comparaison, un deuxième contrôle dépourvu de générateur personnalisé est également inclus dans l'exemple. Pour générer cet exemple, consultez les instructions fournies dans Exemples de contrôles serveur.

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

Page de test pour l'exemple de générateur de contrôles personnalisé

La page .aspx suivante utilise le contrôle personnalisé NoWhiteSpaceControl, qui possède un générateur de contrôles personnalisé. La page possède aussi un contrôle (WhiteSpaceControl) qui est pourvu du générateur de contrôles par défaut.

<%@ 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>

Voir aussi

Vue d'ensemble du générateur de contrôles | ControlBuilderAttribute | Analyse de contrôle, ParseChildrenAttribute et générateurs de contrôles