HyperLink.AddParsedSubObject(Object) HyperLink.AddParsedSubObject(Object) HyperLink.AddParsedSubObject(Object) HyperLink.AddParsedSubObject(Object) Method

Definizione

Notifica al controllo che è stato analizzato un elemento e aggiunge l'elemento al controllo HyperLink.Notifies the control that an element was parsed, and adds the element to the HyperLink control.

protected:
 override void AddParsedSubObject(System::Object ^ obj);
protected override void AddParsedSubObject (object obj);
override this.AddParsedSubObject : obj -> unit
Protected Overrides Sub AddParsedSubObject (obj As Object)

Parametri

obj
Object Object Object Object

Oggetto Object che rappresenta l'elemento sottoposto ad analisi.An Object that represents the parsed element.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato AddParsedSubObject come eseguire l'override HyperLink del metodo in un controllo server personalizzato in modo da impostare sempre la proprietà Text sulla proprietà Text dell'oggetto analizzato, se l'oggetto Literalanalizzato è un e a una stringa vuota. in caso contrario.The following code example demonstrates how to override the AddParsedSubObject method in a custom HyperLink server control so that it always sets the text property to the parsed object's text property, if the parsed object is a Literal, and to an empty string otherwise.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS" %>
<%@ Page Language="C#" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <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"
              NavigateUrl="http://www.microsoft.com/"  
              ToolTip="Microsoft Web Site">www.microsoft.com
            </aspSample:CustomHyperLinkAddParsedSubObject>

        </form>
    </body>
</html>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB" %>
<%@ Page Language="VB" AutoEventWireup="True" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
    <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"
             NavigateUrl="http://www.microsoft.com/"  
             ToolTip="Microsoft Web Site">www.microsoft.com
            </aspSample:CustomHyperLinkAddParsedSubObject>

        </form>
    </body>
</html>
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 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);
        }
      }
    }
  }
}
<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 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

Commenti

Questo metodo viene utilizzato principalmente dagli sviluppatori di controlli, quando si deriva un controllo personalizzato dalla HyperLink classe.This method is used primarily by control developers, when deriving a custom control from the HyperLink class.

Se l'oggetto di input è LiteralControlun e il HyperLink controllo non dispone di controlli figlio, l'oggetto di input viene usato per impostare Text la proprietà del controllo.If the input object is a LiteralControl, and the HyperLink control has no child controls, then the input object is used to set the Text property of the control. In caso contrario AddParsedSubObject , viene chiamato il Control metodo della classe di base e l' Controls oggetto specificato viene aggiunto alla raccolta.Otherwise, the AddParsedSubObject method of the base Control class is called and the specified object is added to the Controls collection.

Si applica a

Vedi anche