TemplateContainerAttribute クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > TemplateContainerAttribute クラスの意味・解説 

TemplateContainerAttribute クラス

ITemplate インターフェイス返しTemplateContainerAttribute 属性マークされるプロパティコンテナ コントロール基本型宣言しますITemplate プロパティを持つコントロールは、INamingContainer インターフェイス実装する必要があります。このクラス継承できません。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

<AttributeUsageAttribute(AttributeTargets.Property)> _
Public NotInheritable Class
 TemplateContainerAttribute
    Inherits Attribute
Dim instance As TemplateContainerAttribute
[AttributeUsageAttribute(AttributeTargets.Property)] 
public sealed class TemplateContainerAttribute
 : Attribute
[AttributeUsageAttribute(AttributeTargets::Property)] 
public ref class TemplateContainerAttribute
 sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Property) */ 
public final class TemplateContainerAttribute
 extends Attribute
AttributeUsageAttribute(AttributeTargets.Property) 
public final class TemplateContainerAttribute
 extends Attribute
解説解説
使用例使用例

TemplatedFirstControl という名前の template 宣言されたコントロール作成し、このコントロールFirstTemplateContainer という名前のコンテナ関連付ける方法次のコード例示します。このコード例では、テンプレート指定されない場合サーバー時間表示しテンプレート指定される場合テンプレート内容表示するカスタム コントロール作成されます。

' File name:templatecontainerattribute.vb.

Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Collections


Namespace Samples.AspNet.VB.Controls
    <ParseChildren(True)> _
    Public Class VB_TemplatedFirstControl
        Inherits Control
        Implements INamingContainer

        Private _firstTemplate As ITemplate
        Private [_text] As [String] = Nothing
        Private _myTemplateContainer As Control

        <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,
 Name:="FullTrust")> _
        Protected Overrides Sub
 OnDataBinding(ByVal e As EventArgs)
            EnsureChildControls()
            MyBase.OnDataBinding(e)
        End Sub


        Public Property FirstTemplate() As
 ITemplate
            Get
                Return _firstTemplate
            End Get

            Set(ByVal value As
 ITemplate)
                _firstTemplate = Value
            End Set
        End Property

        Public Property [Text]() As
 [String]
            Get
                Return [_text]
            End Get

            Set(ByVal value As
 [String])
                [_text] = Value
            End Set
        End Property

        Public ReadOnly Property
 DateTime() As [String]
            Get
                Return System.DateTime.Now.ToLongTimeString()
            End Get
        End Property

        Public ReadOnly Property
 MyTemplateContainer() As Control
            Get
                Return _myTemplateContainer
            End Get
        End Property

        <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand,
 Name:="FullTrust")> _
        Protected Overrides Sub
 CreateChildControls()

            If Not (FirstTemplate Is
 Nothing) Then
                _myTemplateContainer = New VB_FirstTemplateContainer(Me)
                FirstTemplate.InstantiateIn(_myTemplateContainer)
                Controls.Add(_myTemplateContainer)
            Else
                Controls.Add(New LiteralControl([Text] + "
 " + DateTime))
            End If
        End Sub 'CreateChildControls

    End Class 'VB_TemplatedFirstControl


    Public Class VB_FirstTemplateContainer
        Inherits Control
        Implements INamingContainer

        Private _parent As VB_TemplatedFirstControl

        Public Sub New(ByVal
 parent As VB_TemplatedFirstControl)
            Me._parent = parent
        End Sub 'New

        Public ReadOnly Property
 [Text]() As [String]
            Get
                Return _parent.Text
            End Get
        End Property

        Public ReadOnly Property
 DateTime() As [String]
            Get
                Return _parent.DateTime
            End Get
        End Property

    End Class 'VB_FirstTemplateContainer

End Namespace 'CustomControls

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;

namespace Samples.AspNet.CS.Controls
{
    [ParseChildren(true)]
    public class TemplatedFirstControl : Control,
 INamingContainer
    {
        private ITemplate firstTemplate;
        private String text = null;
        private Control myTemplateContainer;

        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
 Name = "FullTrust")]
        protected override void OnDataBinding(EventArgs
 e)
        {
            EnsureChildControls();
            base.OnDataBinding(e);
        }


        [TemplateContainer(typeof(FirstTemplateContainer))]
        public ITemplate FirstTemplate
        {
            get
            {
                return firstTemplate;
            }
            set
            {
                firstTemplate = value;
            }
        }

        public String Text
        {
            get
            {
                return text;
            }
            set
            {
                text = value;
            }
        }

        public String DateTime
        {
            get
            {
                return System.DateTime.Now.ToLongTimeString();
            }

        }

        public Control MyTemplateContainer
        {
            get
            {
                return myTemplateContainer;
            }
        }

        [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,
 Name = "FullTrust")]
        protected override void CreateChildControls()
        {
            if (FirstTemplate != null)
            {
                myTemplateContainer = new FirstTemplateContainer(this);
                FirstTemplate.InstantiateIn(myTemplateContainer);
                Controls.Add(myTemplateContainer);
            }
            else
            {
                Controls.Add(new LiteralControl(Text + "
 " + DateTime));
            }
        }

    }


    public class FirstTemplateContainer : Control,
 INamingContainer
    {
      private TemplatedFirstControl parent;
      public FirstTemplateContainer(TemplatedFirstControl parent)
      {
        this.parent = parent;
      }
            
      public String Text
      {
        get
        {
          return parent.Text;
        }
      }
     
      public String DateTime
      {
        get 
        {
          return parent.DateTime;
        }
                  
      }
    }
    
  }
package Samples.AspNet.CS.Controls;
/* File name:templatecontainerattribute.jsl. */

import System.*;
import System.Web.*;
import System.Web.UI.*;
import System.Web.UI.WebControls.*;
import System.Collections.*;

/** @attribute ParseChildren(true)
 */
public class TemplatedFirstControl extends
 Control implements INamingContainer
{
    private ITemplate firstTemplate;
    private String text = null;
    private Control myTemplateContainer;

    protected void OnDataBinding(EventArgs
 e)
    {
        EnsureChildControls();
        super.OnDataBinding(e);
    } //OnDataBinding

    /** @attribute TemplateContainer(FirstTemplateContainer.class)
     */
    /** @property 
     */
    public ITemplate get_FirstTemplate()
    {
        return firstTemplate;
    } //get_FirstTemplate

    /** @property 
     */
    public void set_FirstTemplate(ITemplate
 value)
    {
        firstTemplate = value;
    } //set_FirstTemplate

    /** @property 
     */
    public String get_Text()
    {
        return text;
    } //get_Text

    /** @property 
     */
    public void set_Text(String value)
    {
        text = value;
    } //set_Text

    /** @property 
     */
    public String get_DateTime()
    {
        return System.DateTime.get_Now().ToLongTimeString();
    } //get_DateTime

    /** @property 
     */
    public Control get_MyTemplateContainer()
    {
        return myTemplateContainer;
    } //get_MyTemplateContainer

    protected void CreateChildControls()
    {
         if (get_FirstTemplate() != null) {
            myTemplateContainer = new FirstTemplateContainer(this);
            get_FirstTemplate().InstantiateIn(myTemplateContainer);
            get_Controls().Add(myTemplateContainer);
        }
        else {
            get_Controls().Add(new LiteralControl(get_Text() +
 " "
                + DateTime.class));
        }
    } //CreateChildControls
} //TemplatedFirstControl

public class FirstTemplateContainer extends
 Control implements INamingContainer
{
    private TemplatedFirstControl parent;

    public FirstTemplateContainer(TemplatedFirstControl parent)
    {
        this.parent = parent;
    } //FirstTemplateContainer

    /** @property 
     */
    public String get_Text()
    {
        return parent.get_Text();
    } //get_Text

    /** @property 
     */
    public String get_DateTime()
    {
        return parent.get_DateTime();
    } //get_DateTime
} //FirstTemplateContainer

次の Web フォームでは、前述コード例作成されカスタム コントロール使用方法示してます。TemplatedFirstControl2 つインスタンスページ上に配置されます。

<%@ Page Language="VB" %>
<%@ Import Namespace="System.Reflection"
 %>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls"
 Assembly="Samples.AspNet.VB.Controls"
 %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Protected Sub Page_Load(ByVal
 sender As Object, ByVal
 e As System.EventArgs)

    ' Get the class type for which to access metadata.
    Dim clsType As Type = GetType(VB_TemplatedFirstControl)
    ' Get the PropertyInfo object for FirstTemplate.
    Dim pInfo As PropertyInfo = clsType.GetProperty("FirstTemplate")
    ' See if the TemplateContainer attribute is defined for this property.
    Dim isDef As Boolean
 = Attribute.IsDefined(pInfo, GetType(TemplateContainerAttribute))
    ' Display the result if the attribute exists.
    If isDef Then
      Dim tca As TemplateContainerAttribute
 = CType(Attribute.GetCustomAttribute(pInfo, GetType(TemplateContainerAttribute)),
 TemplateContainerAttribute)
      Response.Write("The binding direction is: "
 & tca.BindingDirection.ToString())
    End If
   
  End Sub
  
</script>

<html  >
<head runat="server">
    <title>TemplateContainerAttribute Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <aspSample:VB_TemplatedFirstControl id="TemplatedFirstControl1"
 runat="server">
         <FirstTemplate>This is the first template.</FirstTemplate>
      </aspSample:VB_TemplatedFirstControl>
      <br />
      <aspSample:VB_TemplatedFirstControl id="TemplatedFirstControl2"
 runat="server">
      </aspSample:VB_TemplatedFirstControl>    
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Reflection" %>
<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls"
 Assembly="Samples.AspNet.CS.Controls" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  protected void Page_Load(object sender, EventArgs
 e)
  {

    // Get the class type for which to access metadata.
    Type clsType = typeof(TemplatedFirstControl);
    // Get the PropertyInfo object for FirstTemplate.
    PropertyInfo pInfo = clsType.GetProperty("FirstTemplate");
    // See if the TemplateContainer attribute is defined for this property.
    bool isDef = Attribute.IsDefined(pInfo, typeof(TemplateContainerAttribute));
    // Display the result if the attribute exists.
    if (isDef)
    {
      TemplateContainerAttribute tca =
        (TemplateContainerAttribute)Attribute.GetCustomAttribute(pInfo, typeof(TemplateContainerAttribute));
      Response.Write("The binding direction is: " + tca.BindingDirection.ToString());
    }

  }
</script>

<html  >
<head runat="server">
    <title>TemplateContainerAttribute Example</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <aspSample:TemplatedFirstControl id="TemplatedFirstControl1" runat="server">
         <FirstTemplate>This is the first template.</FirstTemplate>
      </aspSample:TemplatedFirstControl>
      <br />
      <aspSample:TemplatedFirstControl id="TemplatedFirstControl2" runat="server">
      </aspSample:TemplatedFirstControl>    
    </div>
    </form>
</body>
</html>
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   System.Attribute
    System.Web.UI.TemplateContainerAttribute
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「TemplateContainerAttribute クラス」の関連用語

TemplateContainerAttribute クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



TemplateContainerAttribute クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS