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.

CatalogZoneBase الفئة

Visual Studio 2010

يعمل كفئة أساسية لكافة عناصر التحكم بالمنطقة التي تعمل كنشرات. نشرات مصورة تحتوي على قوائم WebPartعناصر التحكم التي يمكن إضافة المستخدمين إلى صفحة ويب.

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

public abstract class CatalogZoneBase : ToolZone, 
	IPostBackDataHandler
<asp:CatalogZoneBase />

The CatalogZoneBase class هو a فئة الأساس that inherits من the ToolZone class. It provides a الأساس التعيين of السلوكيات for derived zones.

The CatalogZoneBase فئة provides a فريد مستخدم واجهة (واجه المستخدم) that enables users إلى إضافة WebPart عناصر التحكم و غير ذلك الخادم عناصر التحكم إلى ويب الصفحات. عناصر التحكم that derive من the CatalogZoneBase فئة, such كـ CatalogZone, are the عناصر التحكم actually placed تشغيل ويب الصفحات. They act كـ حاويات for غير ذلك عناصر التحكم, known كـ CatalogPart عناصر التحكم, that إنشاء lists of الخادم عناصر التحكم for users إلى إضافة إلى a الصفحة. Zones that derive من the CatalogZoneBase فئة can appear فقط when the الصفحة هو في كاتالوج الوضع عرض.

ملاحظةملاحظة

على CatalogZoneBaseمنطقة يمكن أن يتضمن فقط CatalogPartعناصر التحكم، و وعلى العكس، CatalogPartعناصر يمكن أن يتواجد في فقط CatalogZoneBaseالمناطق.

الآلية لإضافة عناصر تحكم الملقم إلى كاتالوج هي المجموعة التالية من ثلاثة عناصر التحكم التي ينحدر من الأساس CatalogPartفئة.

عنصر التحكم

الوصف

PageCatalogPart

يحافظ تشغيل مراجع إلى عناصر التحكم التي تم إغلاقها تشغيل صفحة. إعادة فتح عناصر التحكم (إضافة الخلف إلى الصفحة) بالمستخدمين.

DeclarativeCatalogPart

يحتوي على مراجع لعناصر التحكم التي يتم تعريفها في "أجزاء ويب" كاتالوج في العلامات من صفحة ويب. هذه عناصر التحكم يمكن إضافتها إلى صفحة ويب من قبل المستخدمين.

ImportCatalogPart

يوفر واجهة مستخدم لتحميل ملف تعريف لمستخدم كاتالوج حيث يمكن تمت الإضافة عنصر التحكم إلى صفحة ويب. تكون ملفات تعريف ملف XML مع ملحق اسم ملف.WebPart التي تقوم باستيراد الإعدادات الخاصة عنصر تحكم. عنصر تحكم يجب أن يكون موجوداً تشغيل الملقم قبل أن يمكن استيراد من ملف تعريف.

CatalogZoneBase فئة يحتوي على عدد من خصائص مفيدة لعرض النشرات المصورة من WebPartعناصر التحكم. AddVerb تشير خاصية بالفعل تقوم بإضافة عنصر تحكم محدد من كاتالوج إلى الصفحة، بينما CloseVerbتشير خاصية بفعل إغلاق الكتالوج ويرجع الوضع عرض للصفحة إلى استعراض الالوضع. CatalogParts مراجع خاصية مجموعة الجميع CatalogPartعناصر التحكم في المنطقة. خصائص عدة مبنية على نص، مثل EmptyZoneText، HeaderText، و InstructionText، يمنع الخصائص الأساسية إلى تقديم نص الافتراضي المناسب للنشرات المصورة. SelectTargetZoneText تحتوي خاصية على نص الموجود بجانب المنسدلة-لأسفل عنصر تحكم القائمة التي تسمح للمستخدمين إلى اختر المنطقة التي عنصر التحكم التي يتم جمعها إلى.

عدة غير ذلك خصائص مضمنة في CatalogZoneBaseفئة. SelectedCatalogPartID الخاصية هو هو معرّف سلسلة فريدة للمحدد حاليا CatalogPartعنصر التحكم. ShowCatalogIcons ما إذا كان سيتم إظهار الرموز التي يمكن إقرانها ب عنصر تحكم s بتعيين خاصية إلى CatalogIconImageUrlخاصية تشغيل WebPartعنصر تحكم.

PartLinkStyle خاصية يحتوي على السمات النمط للارتباطات إلى CatalogPartعناصر التحكم المحددة في منطقة. في تباين، SelectedPartLinkStyleخاصية يحتوي على السمات النمط الارتباط CatalogPartعنصر تحكم التي قام مستخدم بتحديد حاليا في المنطقة.

بالإضافة إلى الخصائص، هناك أيضا بعض الطرق في CatalogZoneBaseلفئة، بالإضافة إلى معالجة حدث القياسي وأساليب تقديم موروثة من غير ذلك جعل عناصر التحكم التي تم تصميمها بشكل فريد من أجل معالجة النشرات المصورة لعناصر التحكم. CreateCatalogPartChrome إنشاء أسلوب كروم (الطرفية عناصر واجهة المستخدم مثل حد والأفعال، والرموز، وعنوان) التي تحيط بكل CatalogPartعنصر تحكم في المنطقة، وأيضا معالجة العرض ل عنصر تحكم s. CreateCatalogParts أسلوب هو أسلوب مجرد؛ الفئات المشتقة تجاوزه لإنشاء مثيلات لكل CatalogPartعناصر التحكم الموجودة في المنطقة. InvalidateCatalogParts يمكن استدعاء الأسلوب بفئة مشتقة إذا المجموعة CatalogPartعناصر التحكم في تغير المنطقة لسبب البرمجي و الفئة المشتقة بحاجة إلى إعادة إنشاء المجموعة. LoadPostData التحميلات أسلوب الولاية exهوting سابقا لخانات الاختيار موجود بجانب WebPartعناصر التحكم في كاتالوج، كلما الصفحة هو التي تم نشرها إلى الملقم؛ وعلى العكس، SaveControlStateأسلوب يحفظ الولاية خانات الاختيار. وأخيراً، RenderCatalogPartLinksيوفر طريقة عرض للارتباطات إلى كل CatalogPartعناصر التحكم الموجودة في المنطقة.

ملاحظات للمسئولين عن الإرث

إذا أردت أن إلى تطوير منطقة cusإلىm لاستضافة CatalogPartعناصر التحكم، يجب عليك تحديد ما إذا كنت تريد إلى بتوفير قالب منطقة دعم. قالب منطقة يتم إنشاؤه بواسطة الأنواع التي تقوم بتنفيذ ITemplateالواجهة، و ضروريا إذا كنت تريد تمكين المطورين صفحة باستخدام المنطقة المخصصة للرجوع إلى CatalogPartعناصر التحكم داخل المنطقة في العلامة مصرحة من صفحة ويب. إذا كنت تحتاج إلى منطقة قالب الدعم، يجب أن يورث CatalogZoneفئة. وعلى العكس، إذا المنطقة المخصصة الخاصة بك وبه CatalogPartسيتم عناصر التحكم لتكون مستقلة، والتي سوف يتم تاريخ الإنشاء برمجياً بدون أية خيارات للمطورين الصفحة لتعيين عناصر التحكم بشكل إلزامي في قالب منطقة، ثم يمكنك يورث مباشرة من CatalogZoneBaseفئة. إذا قمت بالوراثة من CatalogZoneBaseفئة، يجب يمنع CreateCatalogPartsالأسلوب، و إضافة WebPartأو عناصر تحكم الملقم الأخرى التي تريدها في الكتالوج الخاص بك إلى CatalogPartCollectionالكائن.

يوضح المثال تعليمات برمجية التالي عدة استخدامات مصرحة والمبرمج من CatalogZoneBaseفئة. نظراً لأن الفئة هو مجردة، الأمثلة تعليمات برمجية باستخدام المشتق CatalogZoneالفئة الذي يأتي مع تعيين التحكم "أجزاء ويب"، demonstrating الخصائص والأساليب التي ترث من CatalogZoneBaseفئة.

تعليمات برمجية مثال على الرابع أجزاء:

  • عنصر تحكم مستخدم يتيح لك إلى تغيير أوضاع عرض في صفحة ويب.

  • صفحة ويب تحتوي على مرجع إلى CatalogZoneعنصر تحكم، وبعض تعليمات برمجية الذي يوضح استخدام بعض المفتاح CatalogZoneBaseالأعضاء الفئة.

  • مخصصة على WebPartالتحكم التي هو إضافة إلى المخصصة CatalogZoneعنصر التحكم.

  • وصف كيفية مثال يعمل في مستعرض.

الجزء أول من هذا المثال تعليمات برمجية هو عنصر تحكم مستخدم يتيح لك إلى تغيير أوضاع عرض تشغيل الصفحة. لعرض تفاصيل حول أوضاع ووصف المصدر تعليمات برمجية في عنصر التحكم هذا، راجع الإرشادات التفصيلية: تغيير أوضاع العرض على صفحة أجزاء ويب.


<%@ control language="C#" classname="DisplayModeMenuCS"%>
<script runat="server">

 // Use a field to reference the current WebPartManager.
  WebPartManager _manager;

  void Page_Init(object sender, EventArgs e)
  {
    Page.InitComplete += new EventHandler(InitComplete);
  }  

  void InitComplete(object sender, System.EventArgs e)
  {
    _manager = WebPartManager.GetCurrentWebPartManager(Page);

    String browseModeName = WebPartManager.BrowseDisplayMode.Name;

    // Fill the dropdown with the names of supported display modes.
    foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
    {
      String modeName = mode.Name;
      // Make sure a mode is enabled before adding it.
      if (mode.IsEnabled(_manager))
      {
        ListItem item = new ListItem(modeName, modeName);
        DisplayModeDropdown.Items.Add(item);
      }
    }

    // If shared scope is allowed for this user, display the scope-switching
    // UI and select the appropriate radio button for the current user scope.
    if (_manager.Personalization.CanEnterSharedScope)
    {
      Panel2.Visible = true;
      if (_manager.Personalization.Scope == PersonalizationScope.User)
        RadioButton1.Checked = true;
      else
        RadioButton2.Checked = true;
    }

  }

  // Change the page to the selected display mode.
  void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e)
  {
    String selectedMode = DisplayModeDropdown.SelectedValue;

    WebPartDisplayMode mode = _manager.SupportedDisplayModes[selectedMode];
    if (mode != null)
      _manager.DisplayMode = mode;
  }

  // Set the selected item equal to the current display mode.
  void Page_PreRender(object sender, EventArgs e)
  {
    ListItemCollection items = DisplayModeDropdown.Items;
    int selectedIndex = 
      items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
    DisplayModeDropdown.SelectedIndex = selectedIndex;
  }

  // Reset all of a user's personalization data for the page.
  protected void LinkButton1_Click(object sender, EventArgs e)
  {
    _manager.Personalization.ResetPersonalizationState();
  }

  // If not in User personalization scope, toggle into it.
  protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.Scope == PersonalizationScope.Shared)
      _manager.Personalization.ToggleScope();
  }

  // If not in Shared scope, and if user is allowed, toggle the scope.
  protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
  {
    if (_manager.Personalization.CanEnterSharedScope && 
        _manager.Personalization.Scope == PersonalizationScope.User)
      _manager.Personalization.ToggleScope();
  }
</script>
<div>
  <asp:Panel ID="Panel1" runat="server" 
    Borderwidth="1" 
    Width="230" 
    BackColor="lightgray"
    Font-Names="Verdana, Arial, Sans Serif" >
    <asp:Label ID="Label1" runat="server" 
      Text="&nbsp;Display Mode" 
      Font-Bold="true"
      Font-Size="8"
      Width="120" 
      AssociatedControlID="DisplayModeDropdown"/>
    <asp:DropDownList ID="DisplayModeDropdown" runat="server"  
      AutoPostBack="true" 
      Width="120"
      OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
    <asp:LinkButton ID="LinkButton1" runat="server"
      Text="Reset User State" 
      ToolTip="Reset the current user's personalization data for the page."
      Font-Size="8" 
      OnClick="LinkButton1_Click" />
    <asp:Panel ID="Panel2" runat="server" 
      GroupingText="Personalization Scope"
      Font-Bold="true"
      Font-Size="8" 
      Visible="false" >
      <asp:RadioButton ID="RadioButton1" runat="server" 
        Text="User" 
        AutoPostBack="true"
        GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
      <asp:RadioButton ID="RadioButton2" runat="server" 
        Text="Shared" 
        AutoPostBack="true"
        GroupName="Scope" 
        OnCheckedChanged="RadioButton2_CheckedChanged" />
    </asp:Panel>
  </asp:Panel>
</div>


الجزء الثاني من مثال التعليمة البرمجية صفحة ويب الذي يحتوي على مرجع مصرحة CatalogZoneعنصر التحكم. قريب أعلى الصفحة هي الثاني Registerتوجيهات – واحد للمستخدم عنصر تحكم، والآخر المخصصة WebPartعنصر تحكم. ملاحظة أنه أدناه <asp:WebPartZone>عنصر هو <asp: CatalogZone>العنصر الذي يحتوي على مراجع مصرحة المخصصة WebPartعنصر التحكم، ASP.NET Calendarعنصر التحكم. تتضمن المنطقة العديد من علامات وخصائص مجموعة إلى تحدد المظهر والسلوك الخاص به. بين <script>علامات في الصفحة هو العديد من تعليمات برمجية لمعالجة حدث، معظم الذي يوضح الاستخدامات البرمجية المختلفة من CatalogZoneBaseالأعضاء.


<%@ page language="c#" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuCS" 
  Src="DisplayModeMenucs.ascx" %>
<%@ register tagprefix="aspSample" 
  Namespace="Samples.AspNet.CS.Controls" 
  Assembly="TextDisplayWebPartCS" %>

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

  WebPartManager manager;

  protected void WebPartManager1_DisplayModeChanged(object sender,
    WebPartDisplayModeEventArgs e)
  {
    if (e.OldDisplayMode.Name != "Catalog")
      Panel1.Visible = true;
    else
      Panel1.Visible = false;
  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    if (CatalogZone1.AddVerb.Enabled)
    {
      CatalogZone1.AddVerb.Enabled = false;
      CatalogZone1.CloseVerb.Enabled = false;
    }
    else
    {
      CatalogZone1.AddVerb.Enabled = true;
      CatalogZone1.CloseVerb.Enabled = true;
    }
  }

  protected void Button2_Click(object sender, EventArgs e)
  {
    Label1.Text = "<h3>CatalogPart List</h3>";
    foreach(CatalogPart part in CatalogZone1.CatalogParts)
    {
      Label1.Text += part.ID + "<br />";
    }
  }

  protected void Button3_Click(object sender, EventArgs e)
  {
    CatalogZone1.SelectTargetZoneText = "Add to zone";
    CatalogZone1.EmptyZoneText = "Zone is empty";
    CatalogZone1.HeaderText = "My Updated Header";
    CatalogZone1.InstructionText = "My Updated Instructions";
  }

  protected void Button4_Click(object sender, EventArgs e)
  {
    Label1.Text = CatalogZone1.SelectedCatalogPartID;
  }

  protected void Button5_Click(object sender, EventArgs e)
  {
    CatalogZone1.PartLinkStyle.ForeColor = System.Drawing.Color.Red;
    CatalogZone1.SelectedPartLinkStyle.ForeColor = 
      System.Drawing.Color.Blue;
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>
      CatalogZoneBase Example
    </title>
  </head>
  <body>
    <form id="form1" runat="server">
      <asp:webpartmanager id="WebPartManager1" runat="server" 
        OnDisplayModeChanged="WebPartManager1_DisplayModeChanged" />
      <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
      <asp:webpartzone id="zone1" runat="server">
        <zonetemplate>
          <asp:BulletedList 
            ID="BulletedList1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links" >
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>        
      </asp:webpartzone>
      <asp:CatalogZone ID="CatalogZone1" runat="server"
        EmptyZoneText="No controls are in the zone."
        HeaderText="My Web Parts Catalog"
        InstructionText="Add Web Parts controls to the zone."
        PartLinkStyle-Font-Italic="true"
        SelectedPartLinkStyle-Font-Bold="true"
        SelectTargetZoneText="Select zone"
        AddVerb-Text="Add Control"
        CloseVerb-Description="Close and return to browse mode." 
        SelectedCatalogPartID="Currently Selected CatalogPart ID.">
        <ZoneTemplate>
          <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" 
            runat="server">
            <WebPartsTemplate>
              <aspSample:TextDisplayWebPart 
                runat="server"   
                id="textwebpart" 
                title = "Text Content WebPart" 
                ExportMode="All"/>  
              <asp:Calendar id="calendar1" runat="server" 
                Title="My Calendar" />               
            </WebPartsTemplate>
          </asp:DeclarativeCatalogPart> 
          <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
          <asp:ImportCatalogPart ID="ImportCatalogPart1" runat="server" /> 
        </ZoneTemplate>
      </asp:CatalogZone>
      <hr />
      <asp:CatalogZone ID="CatalogZone2" runat="server"
        BorderWidth="2"
        HeaderText="My Empty CatalogZone"
        EmptyZoneText="No controls are in the zone." />
      <hr />
      <asp:Panel ID="Panel1" runat="server" Visible="false">
        <asp:Button ID="Button1" runat="server" Width="200" 
          Text="Enable or Disable Verbs" 
          OnClick="Button1_Click" />
        <br />
        <asp:Button ID="Button2" runat="server" Width="200" 
          Text="List CatalogParts" OnClick="Button2_Click" />  
        <br />
        <asp:Button ID="Button3" runat="server" Width="200" 
          Text="Set Zone Text Properties" OnClick="Button3_Click" />  
        <br />   
        <asp:Button ID="Button4" runat="server" Width="200" 
          Text="Show Selected CatalogPart ID" OnClick="Button4_Click"  />  
        <br /> 
        <asp:Button ID="Button5" runat="server" Width="200" 
          Text="Change Part Link Styles" OnClick="Button5_Click"  />  
        <br />     
        <asp:Label ID="Label1" runat="server" Text="" /></asp:Panel>
    </form>
  </body>
</html>


الجزء الثالث من تعليمات برمجية المثال هو WebPartعنصر تحكم تسمية مخصصة TextDisplayWebPart. هو معرفة في المنطقة، ويمكن أن يقوم مستخدم النهائي بإضافة من كاتالوج للصفحة. لتشغيل مثال التعليمات البرمجية , يجب عليك التحويل برمجياً للتعليمات البرمجية المصدر . يمكنك تحويله برمجياً مباشرة و وضع ناتج التجميع في مجلد سلة موقع ويب الخاص بك أو في مخزن التجميع العمومي المؤقت. بشكل بديل، يمكنك وضع التعليمات البرمجية المصدر في مجلد App_Code للموقع الخاص بك ، حيث سيتم تحويله برمجيا بشكل حيوي وقت التشغيل . لعرض توضيحي لكلا الأسلوبين التحويل البرمجي، راجع الإرشادات التفصيلية: تطوير و استخدام عنصر تحكم خادم مخصص.


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

namespace Samples.AspNet.CS.Controls
{
  [AspNetHostingPermission(SecurityAction.Demand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  [AspNetHostingPermission(SecurityAction.InheritanceDemand,
    Level = AspNetHostingPermissionLevel.Minimal)]
  public class TextDisplayWebPart : WebPart
  {
    private String _contentText = null;
    TextBox input;
    Label DisplayContent;
    Literal lineBreak;

    [Personalizable(), WebBrowsable]
    public String ContentText
    {
      get { return _contentText; }
      set { _contentText = value; }
    }

    protected override void CreateChildControls()
    {
      Controls.Clear();
      DisplayContent = new Label();
      DisplayContent.BackColor = Color.LightBlue;
      DisplayContent.Text = this.ContentText;
      this.Controls.Add(DisplayContent);

      lineBreak = new Literal();
      lineBreak.Text = @"<br />";
      Controls.Add(lineBreak);

      input = new TextBox();
      this.Controls.Add(input);
      Button update = new Button();
      update.Text = "Set Label Content";
      update.Click += new EventHandler(this.submit_Click);
      this.Controls.Add(update);

    }

    private void submit_Click(object sender, EventArgs e)
    {
      // Update the label string.
      if (input.Text != String.Empty)
      {
        _contentText = input.Text + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }

  }
}


لاحظ أنه لمثال التعليمة البرمجية للعمل، وهناك هو إعداد يجب إضافة في الملف ويب.config لتمكين تصدير ملفات وصف "أجزاء ويب". تأكد من وجود ملف ويب.config في نفس الدليل صفحة ويب هذا المثال التعليمات البرمجية. Within the <system.web> مقطع, make sure there هو a <webParts> عنصر مع an enableExport سمة التعيين إلى true, كـ في the following ترميز.

<webParts enableExport="true">

...

</webParts>

عندما تقوم بتحميل الصفحة في مستعرض، فيمكنك تحديد نشرة مصورة من قائمة منسدلة قائمة صندوق للتبديل إلى الوضع عرض كاتالوج. عند كاتالوج هو vهوible، يمكنك رؤية عناصر التحكم جهازي الخادم التي يمكن إضافتها من كاتالوج للصفحة، وكما يمكنك ذكر في واجهة مستخدم تأثيرات استخدامات مصرحة والمبرمج CatalogZoneBaseالأعضاء الفئة.

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