Freigeben über


HyperLink.AddParsedSubObject-Methode

Benachrichtigt das Steuerelement, dass ein Element analysiert wurde, und fügt das Element zum HyperLink-Steuerelement hinzu.

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

Syntax

'Declaration
Protected Overrides Sub AddParsedSubObject ( _
    obj As Object _
)
'Usage
Dim obj As Object

Me.AddParsedSubObject(obj)
protected override void AddParsedSubObject (
    Object obj
)
protected:
virtual void AddParsedSubObject (
    Object^ obj
) override
protected void AddParsedSubObject (
    Object obj
)
protected override function AddParsedSubObject (
    obj : Object
)

Parameter

  • obj
    Ein Object, das das analysierte Element darstellt.

Hinweise

Diese Methode wird primär von Steuerelemententwicklern beim Ableiten eines benutzerdefinierten Steuerelements von der HyperLink-Klasse verwendet.

Wenn es sich beim Eingabeobjekt um ein LiteralControl handelt und das HyperLink-Steuerelement keine untergeordneten Steuerelemente besitzt, wird das Eingabeobjekt verwendet, um die Text-Eigenschaft des Steuerelements festzulegen. Andernfalls wird die AddParsedSubObject-Methode der Control-Basisklasse aufgerufen, und das angegebene Objekt wird zur Controls-Auflistung hinzugefügt.

Beispiel

Das folgende Codebeispiel veranschaulicht, wie Sie die AddParsedSubObject-Methode in einem benutzerdefinierten HyperLink-Serversteuerelement überschreiben können, sodass es die Texteigenschaft auf die Texteigenschaft des analysierten Objekts festlegt, sofern es sich beim analysierten Objekt um ein Literal handelt. Andernfalls wird eine leere Zeichenfolge festgelegt.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" AutoEventWireup="True" %>
<HTML>
    <HEAD>
        <title>Custom HyperLink - AddParsedSubObject - VB.NET Example</title>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom HyperLink - AddParsedSubObject - VB.NET Example</h3>

            <aspSample:CustomHyperLinkAddParsedSubObject 
             id="HyperLink1" runat="server" Target="_blank"
             href="https://www.microsoft.com/"  
             ToolTip="Microsoft Web Site">www.microsoft.com
            </aspSample:CustomHyperLinkAddParsedSubObject>

        </form>
    </body>
</HTML>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<HTML>
    <HEAD>
        <title>Custom HyperLink - AddParsedSubObject - C# Example</title>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom HyperLink - AddParsedSubObject - C# Example</h3>

            <aspSample:CustomHyperLinkAddParsedSubObject 
              id="HyperLink1" runat="server" Target="_blank"
              href="https://www.microsoft.com/"  
              ToolTip="Microsoft Web Site">www.microsoft.com
            </aspSample:CustomHyperLinkAddParsedSubObject>

        </form>
    </body>
</HTML>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.JSL.Controls" Assembly="Samples.AspNet.JSL" %>
<%@ Page Language="VJ#" AutoEventWireup="True" %>
<HTML>
    <HEAD>
        <title>Custom HyperLink - AddParsedSubObject - VJ# Example</title>
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom HyperLink - AddParsedSubObject - VJ# Example</h3>

            <aspSample:CustomHyperLinkAddParsedSubObject 
              id="HyperLink1" runat="server" Target="_blank"
              href="https://www.microsoft.com/"  
              ToolTip="Microsoft Web Site">www.microsoft.com
            </aspSample:CustomHyperLinkAddParsedSubObject>

        </form>
    </body>
</HTML>
<AspNetHostingPermission(SecurityAction.Demand, Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class CustomHyperLinkAddParsedSubObject
    Inherits System.Web.UI.WebControls.HyperLink

    Protected Overrides Sub AddParsedSubObject(ByVal obj As Object)

        ' If the server control contains any child controls.
        If Me.HasControls() Then

            ' Notify the base server control that an element, either XML or HTML, 
            ' was parsed, and adds the element to the server control's 
            ' ControlCollection object.
            MyBase.AddParsedSubObject(obj)
            ' Else the server control doesn't contain any child controls.
        Else
            ' If the parsed element is a LiteralControl.
            If TypeOf obj Is System.Web.UI.LiteralControl Then

                ' Set the server control's Text property to the parsed element's Text value.
                Me.Text = CType(obj, System.Web.UI.LiteralControl).Text

                ' Else the parsed element is not a LiteralControl.
            Else
                ' If the server control has a value in the the Text property.
                Dim currentText As String = Me.Text
                If currentText.Length <> 0 Then

                    ' Set the server control's Text property to an empty string.
                    Me.Text = System.String.Empty

                    ' Notify the base server control that a new LiteralControl was parsed, 
                    ' and adds the element to the server control's ControlCollection object.
                    MyBase.AddParsedSubObject(New System.Web.UI.LiteralControl(currentText))
                End If
                MyBase.AddParsedSubObject(obj)
            End If
        End If
    End Sub
End Class
using System.Web;
using System.Security.Permissions;

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
  public sealed class CustomHyperLinkAddParsedSubObject : System.Web.UI.WebControls.HyperLink
  {
    protected override void AddParsedSubObject(object obj)
    {
      // If the server control contains any child controls.
      if (this.HasControls()) 
      {
        // Notify the base server control that an element, either XML or HTML, 
        // was parsed, and adds the element to the server control's 
        // ControlCollection object.
        base.AddParsedSubObject(obj);
      }
        // Else the server control doesn't contain any child controls.
      else 
      {
        // If the parsed element is a LiteralControl.
        if (obj is System.Web.UI.LiteralControl) 
        {
          // Set the server control's Text property to the parsed element's Text value.
          this.Text = ((System.Web.UI.LiteralControl)obj).Text;
        }
          // Else the parsed element is not a LiteralControl.
        else 
        {
          // If the server control has a value in the the Text property.
          string currentText = this.Text;
          if (currentText.Length != 0) 
          {
            // Set the server control's Text property to an empty string.
            this.Text = System.String.Empty;

            // Notify the base server control that a new LiteralControl was parsed, 
            // and adds the element to the server control's ControlCollection object.
            base.AddParsedSubObject(new System.Web.UI.LiteralControl(currentText));
          }
          base.AddParsedSubObject(obj);
        }
      }
    }
  }
}
package Samples.AspNet.JSL.Controls;

public class CustomHyperLinkAddParsedSubObject
    extends System.Web.UI.WebControls.HyperLink
{
    protected void AddParsedSubObject(Object obj)
    {
        // If the server control contains any child controls.
        if (this.HasControls()) {
            // Notify the base server control that an element, 
            // either XML or HTML, 
            // was parsed, and adds the element to the server control's 
            // ControlCollection object.
            super.AddParsedSubObject(obj);
        }
        // Else the server control doesn't contain any child controls.
        else {
            // If the parsed element is a LiteralControl.
            if (obj instanceof System.Web.UI.LiteralControl) {
                // Set the server control's Text property to the 
                // parsed element's Text value.
                this.set_Text(((System.Web.UI.LiteralControl)obj).get_Text());
            }
            // Else the parsed element is not a LiteralControl.
            else {
                // If the server control has a value in the the Text property.
                String currentText = this.get_Text();
                if (currentText.get_Length() != 0) {
                    // Set the server control's Text property to an empty string.
                    this.set_Text("");
                    // Notify the base server control that a new LiteralControl 
                    // was parsed, 
                    // and adds the element to the server control's
                    // ControlCollection object.
                    super.AddParsedSubObject(new System.Web.UI.
                        LiteralControl(currentText));
                }
                super.AddParsedSubObject(obj);
            }
        }
    } //AddParsedSubObject
} //CustomHyperLinkAddParsedSubObject

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

HyperLink-Klasse
HyperLink-Member
System.Web.UI.WebControls-Namespace
HasControls

Weitere Ressourcen

HyperLink-Webserver-Steuerelement