CatalogPartCollection Sınıf

Tanım

Son kullanıcıların bir Web sayfasına ekleyebilecekleri Web sunucusu denetimlerinin kataloglarını sağlamak için kullanılan denetimlerden oluşan bir koleksiyon CatalogPart içerir. Bu sınıf devralınamaz.

C#
public sealed class CatalogPartCollection : System.Collections.ReadOnlyCollectionBase
Devralma
CatalogPartCollection

Örnekler

Aşağıdaki kod örneği, sınıfının çeşitli kullanımlarını CatalogPartCollection gösterir. Bu kod örneğinin dört bölümü vardır:

  • Web Bölümleri sayfasındaki görüntü modlarını değiştirmenize olanak tanıyan bir kullanıcı denetimi.

  • Web sayfasında başvurulan ve denetimlerden birinde CatalogPart yer alan adlı TextDisplayWebPartözel WebPart denetim sınıfı.

  • Denetime TextDisplayWebPart başvuran bir Web sayfası, bölgede bildirilen Web Bölümleri denetim kümesinden iki CatalogPart denetim içeren bir CatalogZone denetim içerir ve bir CatalogPartCollection nesneyi oluşturmak ve işlemek için olay temelli kod içerir.

  • Kod örneğini bir tarayıcıya yüklediğinizde nasıl çalıştığını gösteren açıklama.

Kod örneğinin ilk bölümü kullanıcı denetimidir. Kullanıcı denetiminin kaynak kodu başka bir konu başlığından gelir. Bu kod örneğinin çalışması için , İzlenecek Yol: Web Bölümleri Sayfasında Görüntüleme Modlarını Değiştirme konusundan kullanıcı denetimi için .ascx dosyasını edinmeniz ve dosyayı bu kod örneğindeki .aspx sayfasıyla aynı klasöre yerleştirmeniz gerekir.

Kod örneğinin ikinci bölümü denetimdir TextDisplayWebPart . Kod örneğinin çalışması için bu kaynak kodunu derlemeniz gerekir. Bunu açıkça derleyebilir ve sonuçta elde edilen derlemeyi Web sitenizin Bin klasörüne veya genel derleme önbelleğine yerleştirebilirsiniz. Alternatif olarak, kaynak kodu sitenizin App_Code klasörüne koyabilirsiniz; burada çalışma zamanında dinamik olarak derlenir. Her iki derleme yöntemini de gösteren bir izlenecek yol için bkz. İzlenecek Yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma. Denetimin adlı ContentTextbir özelliği olduğunu unutmayın; bu özellik, kullanıcının metin kutusuna girdiği değeri tutar.

C#
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 (!string.IsNullOrEmpty(input.Text))
      {
        _contentText = input.Text + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }
  }
}

Kod örneğinin üçüncü bölümü Web sayfasıdır. Sayfanın öğesinin <asp:catalogzone> iki CatalogPart denetim için bildirimler içerdiğine dikkat edin. Bu denetimler, yöntem yürütürken oluşturulan özel CatalogPartCollection bir nesnenin Button1_Click parçası haline gelir. Denetim, PageCatalogPart daha önce bir kullanıcı tarafından çalışma zamanında kapatılmış olan Web sunucusu denetimlerini içerir. Denetimdeki PageCatalogPart denetimler sayfaya geri eklenebilir. Denetim, DeclarativeCatalogPart özel TextDisplayWebPart denetimin bildirimini içerir. Sayfa katalog modundayken, kullanıcı denetimi normal gözatma modunda kullanılabilmesi için sayfaya ekleyebilir TextDisplayWebPart .

ASP.NET (C#)
<%@ 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">
  // <snippet2>
  protected void Button1_Click(object sender, EventArgs e)
  {
    ArrayList list = new ArrayList(2);
    list.Add(PageCatalogPart1);
    list.Add(DeclarativeCatalogPart1);
    // Pass an ICollection object to the constructor.
    CatalogPartCollection myParts = new CatalogPartCollection(list);
    foreach (CatalogPart catalog in myParts)
    {
      catalog.Description = "My " + catalog.DisplayTitle;
    }

    // Use the IndexOf property to locate a CatalogPart control.
    int PageCatalogPartIndex = myParts.IndexOf(PageCatalogPart1);
    myParts[PageCatalogPartIndex].ChromeType = PartChromeType.TitleOnly;

    // Use the Contains method to see if a CatalogPart control exists.
    if (myParts.Contains(PageCatalogPart1))
    {
      WebPart closedWebPart = null;
      WebPartDescriptionCollection descriptions = PageCatalogPart1.GetAvailableWebPartDescriptions();
      if (descriptions.Count > 0)
      {
        closedWebPart = PageCatalogPart1.GetWebPart(descriptions[0]);
        closedWebPart.AllowClose = false;
      }
    }
    
    // Use indexers to display the details of the CatalogPart controls.
    Label1.Text = String.Empty;
    Label1.Text =
      "<h3>PageCatalogPart Details</h3>" +
      "ID: " + myParts[0].ID + "<br />" +
      "Count: " + myParts[0].GetAvailableWebPartDescriptions().Count;
    Label1.Text += 
      "<h3>DeclarativeCatalogPart Details</h3>" +
      "ID: " + myParts["DeclarativeCatalogPart1"].ID + "<br />" +
      "Count: " + myParts["DeclarativeCatalogPart1"].GetAvailableWebPartDescriptions().Count;
  }
  // </snippet2>
</script> 
 
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>PageCatalogPart Details</title>
</head>
<body>
  <form id="form1" runat="server">
    <asp:WebPartManager ID="WebPartManager1" runat="server" />
    <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
    <asp:WebPartZone ID="WebPartZone1" 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">
      <ZoneTemplate>
        <asp:DeclarativeCatalogPart ID="DeclarativeCatalogPart1" runat="server">
          <WebPartsTemplate>
            <aspSample:TextDisplayWebPart runat="server" 
              id="TextDisplayWebPart1"
              Title="Text Display WebPart" />
          </WebPartsTemplate>
        </asp:DeclarativeCatalogPart>
        <asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />  
      </ZoneTemplate>
    </asp:CatalogZone>
    <hr />
    <asp:Button ID="Button1" 
      runat="server" 
      Text="Display CatalogPart Properties" 
      OnClick="Button1_Click"/>
    <br />
    <asp:Label ID="Label1" runat="server" Text="" /> 
  </form>
</body>
</html>

Sayfayı bir tarayıcıya yüklediğinizde, Görüntü Modu açılan liste denetiminde Katalog'u seçerek sayfayı katalog moduna geçirebilirsiniz. Sayfanın yanındaki onay kutusunu seçip Ekle'ye tıklayarak özel WebPart denetimi sayfaya ekleyebilirsiniz. Sayfayı göz atma moduna döndürmek için Kapat'a tıklayın. Yeni eklediğiniz denetimde, fiiller menüsüne (başlık çubuğunda görünen aşağı ok) tıklar ve ardından Kapat'a tıklarsanız, denetim sayfadan kaldırılır ve denetime PageCatalogPart eklenir. Sayfayı katalog moduna döndürerek denetimin içeriğini görüntülemek için Sayfa Kataloğu bağlantısına PageCatalogPart tıklayın. Kapattığınız denetimin artık burada göründüğüne dikkat edin. KatalogPart Özelliklerini Görüntüle düğmesine tıklanması nesneye CatalogPartCollection erişir ve kapsanan CatalogPart denetimlerin belirli özelliklerini görüntüler.

Açıklamalar

CatalogPartCollection sınıfı, genellikle bölge tarafından bölgenin içerdiği denetim kümesini CatalogPart izlemek için kullanılan salt okunur bir CatalogZoneBase denetim koleksiyonudurCatalogPart.

Web Bölümleri sayfası katalog moduna girdiğinde, bölge denetimlerden oluşan CatalogPart yeni CatalogPartCollection bir nesne oluşturur. Koleksiyondaki her CatalogPart denetim, kullanılabilir sunucu denetimleri kataloğu biçiminde görüntülenen sıfır veya daha fazla Web sunucusu denetimine başvuru içerebilir.

Örneğin, bir CatalogPartCollection dizi CatalogPart denetim üzerinde toplu işlem gerçekleştirmeniz gerekiyorsa, kendi programlı kullanımınız için bir denetim koleksiyonu oluşturabilirsiniz. Nesne salt okunur olsa CatalogPartCollection da, koleksiyonda başvuruda bulunılan temel denetimlerde programlı değişiklikler yapabilirsiniz.

Oluşturucular

CatalogPartCollection()

sınıfının yeni, boş bir örneğini CatalogPartCollection başlatır.

CatalogPartCollection(CatalogPartCollection, ICollection)

Bir bölgedeki mevcut CatalogPart denetimlerin CatalogPartCollection koleksiyonunu ICollection ve ek denetim koleksiyonunu geçirerek sınıfının yeni bir örneğini başlatır.

CatalogPartCollection(ICollection)

Bir denetim koleksiyonu geçirerek sınıfının yeni bir ICollection örneğini CatalogPartCollectionCatalogPart başlatır.

Alanlar

Empty

Koleksiyonun statik, salt okunur, boş bir örneğine başvurur.

Özellikler

Count

Örnekte bulunan ReadOnlyCollectionBase öğelerin sayısını alır.

(Devralındığı yer: ReadOnlyCollectionBase)
InnerList

Örnekte bulunan ReadOnlyCollectionBase öğelerin listesini alır.

(Devralındığı yer: ReadOnlyCollectionBase)
Item[Int32]

Koleksiyondaki konumuna göre koleksiyonun bir üyesini alır veya ayarlar.

Item[String]

Benzersiz bir dize tanımlayıcısını temel alarak koleksiyonun bir üyesini döndürür.

Yöntemler

Contains(CatalogPart)

Koleksiyonda belirli bir denetimin bulunup bulunmadığına ilişkin bir değer döndürür.

CopyTo(CatalogPart[], Int32)

Koleksiyonu bir nesne dizisine CatalogPart kopyalar.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetEnumerator()

Örnekte yineleyen ReadOnlyCollectionBase bir numaralandırıcı döndürür.

(Devralındığı yer: ReadOnlyCollectionBase)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IndexOf(CatalogPart)

Koleksiyonun belirli bir üyesinin konumunu döndürür.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

ICollection.CopyTo(Array, Int32)

Hedef dizinin belirtilen dizininden başlayarak tamamını ReadOnlyCollectionBase uyumlu bir tek boyutlu Arrayöğesine kopyalar.

(Devralındığı yer: ReadOnlyCollectionBase)
ICollection.IsSynchronized

Bir nesneye erişimin eşitlenip eşitlenmediğini belirten bir ReadOnlyCollectionBase değer alır (iş parçacığı güvenli).

(Devralındığı yer: ReadOnlyCollectionBase)
ICollection.SyncRoot

Bir nesneye erişimi eşitlemek için kullanılabilecek bir ReadOnlyCollectionBase nesne alır.

(Devralındığı yer: ReadOnlyCollectionBase)

Uzantı Metotları

Cast<TResult>(IEnumerable)

öğesinin IEnumerable öğelerini belirtilen türe atar.

OfType<TResult>(IEnumerable)

Öğesinin IEnumerable öğelerini belirtilen türe göre filtreler.

AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerable öğesini öğesine IQueryabledönüştürür.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Ayrıca bkz.