Freigeben über


HyperLinkDesigner-Klasse

Stellt Entwurfszeitunterstützung in einem visuellen Designer für das HyperLink-Webserversteuerelement bereit.

Namespace: System.Web.UI.Design.WebControls
Assembly: System.Design (in system.design.dll)

Syntax

'Declaration
Public Class HyperLinkDesigner
    Inherits TextControlDesigner
'Usage
Dim instance As HyperLinkDesigner
public class HyperLinkDesigner : TextControlDesigner
public ref class HyperLinkDesigner : public TextControlDesigner
public class HyperLinkDesigner extends TextControlDesigner
public class HyperLinkDesigner extends TextControlDesigner

Hinweise

Das HyperLink-Steuerelement erstellt einen Hyperlink für den Clientbrowser für die Navigation zu einer anderen Webseite.

Wenn Sie in einem visuellen Designer von der Quellansicht zur Entwurfsansicht wechseln, wird der Markupquellcode analysiert, der ein HyperLink-Steuerelement beschreibt, und auf der Entwurfsoberfläche wird eine Entwurfszeitversion des Steuerelements erstellt. Wenn Sie zurück zur Quellansicht wechseln, wird das Entwurfszeit-Steuerelement im Markupquellcode beibehalten und in das Markup für die Webseite eingearbeitet. Die HyperLinkDesigner-Klasse bietet für das HyperLink-Steuerelement Unterstützung zur Entwurfszeit.

Die GetDesignTimeHtml-Methode gibt das Markup zurück, das zum Rendering des zugeordneten HyperLink-Steuerelements zur Entwurfszeit verwendet wird. Die OnComponentChanged-Methode wird aufgerufen, wenn das zugeordnete Steuerelement geändert wurde.

Beispiel

Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Beispiel wird veranschaulicht, wie eine Klasse von der HyperLinkDesigner-Klasse abgeleitet wird, wie eine Methode überschrieben wird und wie ein Eigenschaftenname angegeben wird. Im zweiten Beispiel wird veranschaulicht, wie ein Steuerelement vom HyperLink-Steuerelement abgeleitet wird und wie ein Attribut auf das abgeleitete Steuerelement angewendet wird.

Im folgenden Codebeispiel wird veranschaulicht, wie eine CustomHyperLinkDesigner-Klasse von der HyperLinkDesigner-Klasse abgeleitet wird. Diese überschreibt die GetDesignTimeHtml-Methode, um einen Standardwert für die Text-Eigenschaft bereitzustellen, wenn der ursprüngliche Wert für den Text eine leere Zeichenfolge ("") ist. Damit wird sichergestellt, dass das zugeordnete Steuerelement zur Entwurfszeit sichtbar ist.

' Derive the CustomHyperLinkDesigner from the HyperLinkDesigner.
Public Class CustomHyperLinkDesigner
    Inherits HyperLinkDesigner

    ' Override the GetDesignTimeHtml to set the CustomHyperLink Text
    ' property so that it displays at design time.
    Public Overrides Function GetDesignTimeHtml() As String

        Dim hype As CustomHyperLink = CType(Component, CustomHyperLink)
        Dim designTimeMarkup As String = Nothing

        ' Save the original Text and note if it is empty.
        Dim text As String = hype.Text
        Dim noText As Boolean = (text.Trim().Length = 0)

        Try
            ' If the Text is empty, supply a default value.
            If noText Then
                hype.Text = "Click here."
            End If

            ' Call the base method to generate the markup.
            designTimeMarkup = MyBase.GetDesignTimeHtml()

        Catch ex As Exception
            ' If an error occurs, generate the markup for an error message.
            designTimeMarkup = GetErrorDesignTimeHtml(ex)

        Finally
            ' Restore the original value of the Text, if necessary.
            If noText Then
                hype.Text = text
            End If
        End Try

        ' If the markup is empty, generate the markup for a placeholder.
        If ((designTimeMarkup = Nothing) Or _
            (designTimeMarkup.Length = 0)) Then
            designTimeMarkup = GetEmptyDesignTimeHtml()
        End If

        Return designTimeMarkup

    End Function ' GetDesignTimeHtml
End Class ' CustomHyperLinkDesigner
// Derive the CustomHyperLinkDesigner from the HyperLinkDesigner.
public class CustomHyperLinkDesigner : HyperLinkDesigner
{
    // Override the GetDesignTimeHtml to set the CustomHyperLink Text 
    // property so that it displays at design time.
    public override string GetDesignTimeHtml()
    {
        CustomHyperLink hype = (CustomHyperLink)Component;
        string designTimeMarkup = null;

        // Save the original Text and note if it is empty.
        string text = hype.Text;
        bool noText = (text.Trim().Length == 0);

        try
        {
            // If the Text is empty, supply a default value.
            if (noText)
                hype.Text = "Click here.";

            // Call the base method to generate the markup.
            designTimeMarkup = base.GetDesignTimeHtml();
        }
        catch (Exception ex)
        {
            // If an error occurs, generate the markup for an error message.
            designTimeMarkup = GetErrorDesignTimeHtml(ex);
        }
        finally
        {
            // Restore the original value of the Text, if necessary.
            if (noText)
                hype.Text = text;
        }

        // If the markup is empty, generate the markup for a placeholder.
        if(designTimeMarkup == null || designTimeMarkup.Length == 0)
            designTimeMarkup = GetEmptyDesignTimeHtml();

        return designTimeMarkup;
    } // GetDesignTimeHtml
} // CustomHyperLinkDesigner

Im folgenden Codebeispiel wird veranschaulicht, wie das CustomHyperLink-Steuerelement vom HyperLink-Steuerelement abgeleitet und ein DesignerAttribute-Attribut auf das CustomHyperLink-Steuerelement angewendet wird, um dieses dem CustomHyperLinkDesigner zuzuordnen.

Imports System.Web
Imports System.ComponentModel
Imports System.Web.UI.WebControls
Imports System.Security.Permissions

Namespace Examples.VB.WebControls.Design

    ' The CustomHyperLink is a copy of the HyperLink.
    ' It uses the CustomHyperLinkDesigner for design-time support. 
    <AspNetHostingPermission(SecurityAction.Demand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
        Level:=AspNetHostingPermissionLevel.Minimal)> _
    <Designer(GetType(Examples.VB.WebControls.Design. _
        CustomHyperLinkDesigner))> _
    Public Class CustomHyperLink
        Inherits HyperLink
    End Class ' CustomHyperLink
End Namespace ' Examples.VB.WebControls.Design
using System.Web;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Security.Permissions;

namespace Examples.CS.WebControls.Design
{
    // The CustomHyperLink is a copy of the HyperLink.
    // It uses the CustomHyperLinkDesigner for design-time support. 
    [AspNetHostingPermission(SecurityAction.Demand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, 
        Level = AspNetHostingPermissionLevel.Minimal)]
    [Designer(typeof(Examples.CS.WebControls.Design.
        CustomHyperLinkDesigner))]
    public class CustomHyperLink : HyperLink
    {
    } // CustomHyperLink
} // Examples.CS.WebControls.Design

.NET Framework-Sicherheit

Vererbungshierarchie

System.Object
   System.ComponentModel.Design.ComponentDesigner
     System.Web.UI.Design.HtmlControlDesigner
       System.Web.UI.Design.ControlDesigner
         System.Web.UI.Design.TextControlDesigner
          System.Web.UI.Design.WebControls.HyperLinkDesigner

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

HyperLinkDesigner-Member
System.Web.UI.Design.WebControls-Namespace
HyperLink
TextControlDesigner-Klasse
ControlDesigner-Klasse
HtmlControlDesigner-Klasse
ComponentDesigner

Weitere Ressourcen

Übersicht über ASP.NET-Steuerelement-Designer
Exemplarische Vorgehensweise: Erstellen eines einfachen Steuerelement-Designers für ein Webserver-Steuerelement