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.

public ref class CatalogPartCollection sealed : System::Collections::ReadOnlyCollectionBase
public sealed class CatalogPartCollection : System.Collections.ReadOnlyCollectionBase
type CatalogPartCollection = class
    inherit ReadOnlyCollectionBase
Public NotInheritable Class CatalogPartCollection
Inherits 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.

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;
      }
    }
  }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Drawing
Imports System.Security.Permissions
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts

Namespace Samples.AspNet.VB.Controls

  <AspNetHostingPermission(SecurityAction.Demand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  <AspNetHostingPermission(SecurityAction.InheritanceDemand, _
    Level:=AspNetHostingPermissionLevel.Minimal)> _
  Public Class TextDisplayWebPart
    Inherits WebPart
    Private _contentText As String = Nothing
    Private _fontStyle As String = Nothing
    Private input As TextBox
    Private DisplayContent As Label
    Private lineBreak As Literal

    <Personalizable(), WebBrowsable()> _
    Public Property ContentText() As String
      Get
        Return _contentText
      End Get
      Set(ByVal value As String)
        _contentText = value
      End Set
    End Property

    Protected Overrides Sub CreateChildControls()
      Controls.Clear()
      DisplayContent = New Label()
      DisplayContent.BackColor = Color.LightBlue
      DisplayContent.Text = Me.ContentText
      Me.Controls.Add(DisplayContent)

      lineBreak = New Literal()
      lineBreak.Text = "<br />"
      Controls.Add(lineBreak)

      input = New TextBox()
      Me.Controls.Add(input)
      Dim update As New Button()
      update.Text = "Set Label Content"
      AddHandler update.Click, AddressOf Me.submit_Click
      Me.Controls.Add(update)

    End Sub

    Private Sub submit_Click(ByVal sender As Object, _
                             ByVal e As EventArgs)
      ' Update the label string.
      If input.Text <> String.Empty Then
        _contentText = input.Text + "<br />"
        input.Text = String.Empty
        DisplayContent.Text = Me.ContentText
      End If

    End Sub

  End Class

End Namespace

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 .

<%@ 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>
<%@ Page Language="vb" %>
<%@ register TagPrefix="uc1" 
  TagName="DisplayModeMenuVB" 
  Src="DisplayModeMenuVB.ascx" %>
<%@ Register TagPrefix="aspSample"
  Namespace="Samples.AspNet.VB.Controls" 
  Assembly="TextDisplayWebPartVB" %> 

<!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 Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) 
    Dim list As New ArrayList(2)
    list.Add(PageCatalogPart1)
    list.Add(DeclarativeCatalogPart1)
    ' Pass an ICollection object to the constructor.
    Dim myParts As New CatalogPartCollection(list)
    Dim catalog As CatalogPart
    For Each catalog In  myParts
        catalog.Description = "My " + catalog.DisplayTitle
    Next catalog
    
    ' Use the IndexOf property to locate a CatalogPart control.
    Dim PageCatalogPartIndex As Integer = _
      myParts.IndexOf(PageCatalogPart1)
    myParts(PageCatalogPartIndex).ChromeType = PartChromeType.TitleOnly
    
    ' Use the Contains method to see if a CatalogPart control exists.
    If myParts.Contains(PageCatalogPart1) Then
        Dim closedWebPart As WebPart = Nothing
        Dim descriptions As WebPartDescriptionCollection = _
          PageCatalogPart1.GetAvailableWebPartDescriptions()
        If descriptions.Count > 0 Then
            closedWebPart = PageCatalogPart1.GetWebPart(descriptions(0))
            closedWebPart.AllowClose = False
        End If
    End If
    
    ' 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

End Sub 
' </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:DisplayModeMenuVB 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

Ayrıca bkz.