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.

PersistChildrenAttribute الفئة

Visual Studio 2010

تعريف سمة التي هو المستخدم قبل ASP.NET عناصر تحكم الخادم للإشارة إلى وقت التصميم ما إذا كانت تتداخل المحتوى الذي هو الموجودة ضمن ملقم التحكم بالمقابل لعناصر تحكم أو خصائص عنصر التحكم الملقم. و هذه الفئة لا يمكن أن تكون موروثة.

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

[AttributeUsageAttribute(AttributeTargets.Class)]
public sealed class PersistChildrenAttribute : Attribute

PersistChildrenAttribute يستخدم بالاشتراك مع ParseChildrenAttributeإلى تحديد محتويات عنصر تحكم المتداخلة كيف يتم تفسير. إذا PersistChildrenAttributeهو trueو ParseChildrenAttributeهو false، هو يستمر المتداخلة المحتوى في عنصر تحكم الخادم كـP.NET كـ عناصر التحكم. إذا PersistChildrenAttributeهو falseو ParseChildrenAttributeهو true، هو يستمر المحتوى المتداخلة كخصائص الملقم عنصر تحكم. للمزيد من المعلومات حول استخدام الواجهات, راجع لتوسيع بيانات التعريف باستخدام السمات.

تعليمات برمجية مثال في هذا القسم يحتوي على جزءين. The أول تعليمات برمجية مثال demonstrates how إلى التعيين the بيانات التعريف of a مخصص عنصر تحكم so that at تصميم الوقت, its nested محتوى هو persisted كـ خصائص of the عنصر تحكم. يوضح المثال تعليمات برمجية الثاني كيفية إلى استخدام الفئات في صفحة ASP.NET.

يوضح مثال التعليمة البرمجية التالية كيف إلى يطبق PersistChildrenAttributeسمة حيث لا توجد أية عناصر متداخلة cusإلىm الملقم لعنصر تحكم يتم الدائمة كعناصر متداخلة. عنصر تحكم مخصص لخادم باسم CollectionPropertyControlله PersistChildrenAttributeتعيين السمة falseحتى Employeeيتم الاحتفاظ الكائنات المضافة كعناصر متداخلة.


using System;
using System.Collections;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Permissions;

namespace PersistChildrenSamples
{
   // The child element class.
   [AspNetHostingPermission(SecurityAction.Demand, 
      Level=AspNetHostingPermissionLevel.Minimal)]
   public sealed class Employee
   {
      private String name;
      private String title;
      private String alias;

      public Employee():this ("","",""){}

      public Employee (String name, String title, String alias)
      {
         this.name = name;
         this.title = title;
         this.alias = alias;
      }
      public String Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }

      public String Title
      {
         get
         {
            return title;
         }
         set
         {
            title = value;
         }
      }

      public String Alias
      {
         get
         {
            return alias;
         }
         set
         {
            alias = value;
         }
      }
   }
   // Use the PersistChildren attribute to set the Persist
   // property to false so that none of this class's
   // child controls will be persisted as controls. They will
   // be persisted only as child elements of this class.
   // If you set the PersistChildren attribute to true, or if you
   // do not include this attribute when you create a control,
   // the child controls will be persisted as controls.   
   [PersistChildren(false)]
   [AspNetHostingPermission(SecurityAction.Demand, 
      Level=AspNetHostingPermissionLevel.Minimal)]
   public sealed class CollectionPropertyControl : Control
   {  
      private String header;
      private ArrayList employees = new ArrayList();

      public String Header
      {
         get
         {
            return header;
         }
         set
         {
            header = value;
         }
      }



      public ArrayList Employees
      {
         get 
         {
            return employees;
         }
      }
      // Override the CreateChildControls method to 
      // add child controls to the Employees property when this
      // custom control is requested from a page.
      protected override void CreateChildControls()
      {
         Label label = new Label();
         label.Text = Header;
         label.BackColor = Color.Beige;
         label.ForeColor = Color.Red;
         Controls.Add(label);
         Controls.Add(new LiteralControl("<BR> <BR>"));

         Table table = new Table();
         TableRow htr = new TableRow();

         TableHeaderCell hcell1 = new TableHeaderCell();    
         hcell1.Text = "Name";
         htr.Cells.Add(hcell1);

         TableHeaderCell hcell2 = new TableHeaderCell();
         hcell2.Text = "Title";
         htr.Cells.Add(hcell2);

         TableHeaderCell hcell3 = new TableHeaderCell();
         hcell3.Text = "Alias";
         htr.Cells.Add(hcell3);
         table.Rows.Add(htr);

         table.BorderWidth = 2;
         table.BackColor = Color.Beige;
         table.ForeColor = Color.Red;
         foreach (Employee employee in Employees)
         {
            TableRow tr = new TableRow();

            TableCell cell1 = new TableCell();
            cell1.Text = employee.Name;
            tr.Cells.Add(cell1);

            TableCell cell2 = new TableCell();
            cell2.Text = employee.Title;
            tr.Cells.Add(cell2);

            TableCell cell3 = new TableCell();
            cell3.Text = employee.Alias;
            tr.Cells.Add(cell3);

            table.Rows.Add(tr);
         }
         Controls.Add(table);

      }
   }
}


يوضح المثال تعليمات برمجية التالي كيفية إلى تستخدم في CollectionPropertyControlEmployeeالفئات في صفحة ASP.NET.


<%@ Page Language="C#" %>
<%@ Register TagPrefix="AspSample" Assembly="Samples.AspNet.CS.Controls" Namespace="PersistChildrenSamples" %>

<!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)
  {

    // Create two new employees and add them to the custom control.
    Employee e1 = new Employee("Employee 1", "Title 1", "Alias 1");
    Employee e2 = new Employee("Employee 2", "Title 2", "Alias 2");
    CollectionPropertyControl1.Employees.Add(e1);
    CollectionPropertyControl1.Employees.Add(e2);

    // Verify attribute values.
    PersistChildrenAttribute p =
      (PersistChildrenAttribute)Attribute.GetCustomAttribute(typeof(CollectionPropertyControl), 
      typeof(PersistChildrenAttribute));

    StringBuilder sb = new StringBuilder();
    sb.Append("The Persist property is " + p.Persist.ToString() + "<br />");
    sb.Append("The UseCustomPersistence property is " + p.UsesCustomPersistence.ToString() + "<br />");
    sb.Append("The IsDefault method returns " + p.IsDefaultAttribute().ToString());
    Message.Text = sb.ToString();

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>PersistChildrenAttribute</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:Label ID="Message"
                 runat="server"/>
      <AspSample:CollectionPropertyControl id="CollectionPropertyControl1" 
                                           runat="server">
      </AspSample:CollectionPropertyControl>
    </div>
    </form>
</body>
</html>


System.Object
  System.Attribute
    System.Web.UI.PersistChildrenAttribute

يتم تأمين العملية الجزئية لأي عضو عمومي ثابت (مشترك في 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
إظهار: