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