次の方法で共有


Literal.AddParsedSubObject(Object) メソッド

定義

XML または HTML 要素が解析されたことを Literal コントロールに通知し、その要素をコントロールの ControlCollection オブジェクトに追加します。

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)

パラメーター

obj
Object

解析された要素を表す Object

例外

objLiteralControl 型ではありません。

次のコード例では、カスタム サーバー コントロールのメソッドをオーバーライドAddParsedSubObjectして、解析されたオブジェクトが解析されたオブジェクトのプロパティである場合は常にプロパティを設定し、それ以外のText場合はLiteralstringに設定Textする方法を示します。

<%@ 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 LiteralControl - AddParsedSubObject - C# Example</title>
       <script runat="server">
      void Button1_Click(Object sender, EventArgs e)
      {
         Literal1.Text = "Welcome to ASP.NET!";
      }
   </script>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom LiteralControl - AddParsedSubObject - C# Example</h3>
            
            <aspSample:CustomLiteralAddParsedSubObject 
              id="Literal1" 
              runat="server" 
              text="Literal Text" />

      <br /><br />

      <asp:Button 
        id="Button1"
        Text="Change"
        OnClick="Button1_Click"
        runat="server"/>
        
        </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 LiteralControl - AddParsedSubObject - VB.Net Example</title>
       <script runat="server">
      Sub Button1_Click(sender As Object, e As EventArgs)
      
         Literal1.Text = "Welcome to ASP.NET!"

      End Sub

   </script>
    </head>
    <body>
        <form id="Form1" method="post" runat="server">
            <h3>Custom LiteralControl - AddParsedSubObject - VB.Net Example</h3>
            
            <aspSample:CustomLiteralAddParsedSubObject id="Literal1" 
              runat="server" text="Literal Text" />

      <br /><br />

      <asp:Button id="Button1"
        Text="Change"
        OnClick="Button1_Click"
        runat="server"/>
        </form>
    </body>
</html>
using System.Web;
using System.Security.Permissions;

namespace Samples.AspNet.CS.Controls
{
    [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)]
    public sealed class CustomLiteralAddParsedSubObject : System.Web.UI.LiteralControl
    {
    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 CustomLiteralAddParsedSubObject
    Inherits System.Web.UI.WebControls.Literal

    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

適用対象

こちらもご覧ください