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