Condividi tramite


Esempio di generatore di controlli personalizzato

Nell'esempio seguente viene descritto un generatore di controlli personalizzato (NoWhiteSpaceControlBuilder) che viene associato a un controllo personalizzato (NoWhiteSpaceControl). Per eseguire un confronto, viene incluso anche un secondo controllo che non dispone di un generatore personalizzato. Per generare questo esempio, vedere le istruzioni riportate in Esempi di controlli server.

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

Pagina di prova per l'esempio di generatore di controlli personalizzato

La pagina aspx seguente utilizza il controllo personalizzato NoWhiteSpaceControl, che dispone di un generatore di controlli personalizzato. Per contro, la pagina ha anche un controllo (WhiteSpaceControl) che dispone del generatore di controlli predefinito.

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

Vedere anche

Cenni preliminari sui generatori di controlli | ControlBuilderAttribute | Analisi dei controlli, ParseChildrenAttribute e generatori di controlli