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