This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

TemplateContainerAttribute الفئة

Visual Studio 2010

يقوم بتعريف النوع الأساسي لعنصر تحكم الحاوية للخاصية التي تقوم بإرجاع ITemplateالواجهة وتم وضع عليها TemplateContainerAttributeالسمة. عنصر تحكم مع ITemplateيجب أن يقوم تطبيق الخاصية INamingContainerالواجهة. و هذه الفئة لا يمكن أن تكون موروثة.

مساحة الاسم:  System.Web.UI
التجميع:  System.Web (في System.Web.dll)

[AttributeUsageAttribute(AttributeTargets.Property)]
public sealed class TemplateContainerAttribute : Attribute

Type الكائن الذي هو التي تم تمريرها كمعلمة TemplateContainerAttributeالكائن هو المستخدمة من قبل محلل كالنوع Containerالكائن الذي هو استخدامها في تعبيرات ربط بيانات. عنصر التحكم به خاصية بإرجاع ITemplateواجهة و هو عليها TemplateContainerAttribute، يجب أن تطبق INamingContainerالواجهة.

للمزيد من المعلومات حول استخدام الواجهات, راجع لتوسيع بيانات التعريف باستخدام السمات.

يلي تعليمات برمجية مثال يوضح كيفية إنشاء عنصر تحكم لتوفير قالب باسم TemplatedFirstControlوإقرانها مع حاوية يسمى FirstTemplateContainer. يسمح هذا لإنشاء مخصص عناصر التحكم التي تعرض الملقم الوقت عند قالب لم يتم تحديد والمحتوى قالب's عند قالب المحدد.


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;
        }

      }
    }

  }


نموذج ويب التالية يوضح كيفية استخدام عناصر تحكم مخصصة تم إنشاؤها في السابق تعليمات برمجية المثال. مثيلين من TemplatedFirstControlتوضع تشغيل الصفحة:

  • أول مثيل يتضمن قالب <FirstTemplate>.

  • لا يتضمن المثيل الثاني <FirstTemplate>؛ ولذلك، فإنه يظهر فقط الوقت.


<%@ 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 xmlns="http://www.w3.org/1999/xhtml" >
<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>


System.Object
  System.Attribute
    System.Web.UI.TemplateContainerAttribute

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في Visual Basic) من هذا النوع. لن يتم ضمان تأمين العملية الجزئية لأي عضو مثيل.

نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, الإصدار x64 من نظام التشغيل Windows XP Professional, Windows XP Starter Edition, Windows Server 2008, نظام التشغيل Windows Server 2003, نظام التشغيل Windows Server 2000 المزود بحزمة الخدمة SP4, نظام التشغيل Windows Millennium Edition, نظام التشغيل Windows 98

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0, 2.0, 1.1, 1.0
إظهار: