CatalogPartCollection Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bevat een verzameling CatalogPart besturingselementen die worden gebruikt om catalogi van webserverbesturingselementen te bieden die eindgebruikers kunnen toevoegen aan een webpagina. Deze klasse kan niet worden overgenomen.
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
- Overname
Voorbeelden
In het volgende codevoorbeeld ziet u verschillende toepassingen van de CatalogPartCollection klasse. Dit codevoorbeeld bevat vier onderdelen:
Een gebruikersbeheer waarmee u weergavemodi op een pagina met webonderdelen kunt wijzigen.
Een klasse voor een aangepast besturingselement WebPart met de naam
TextDisplayWebPart, waarnaar wordt verwezen op de webpagina en is opgenomen in een van de CatalogPart besturingselementen.Een webpagina die verwijst naar het
TextDisplayWebPartbesturingselement, bevat een CatalogZone besturingselement met twee van de CatalogPart besturingselementen uit de set webonderdelen die in de zone zijn gedeclareerd en bevat gebeurtenisgestuurde code om een CatalogPartCollection object te maken en te bewerken.Een uitleg van hoe het codevoorbeeld werkt wanneer u het laadt in een browser.
Het eerste deel van het codevoorbeeld is het gebruikersbeheer. De broncode voor het gebruikersbeheer komt uit een ander onderwerp. Om dit codevoorbeeld te laten werken, moet u het ASCX-bestand voor het gebruikersbeheer ophalen uit het scenario: Weergavemodi wijzigen op een paginaonderwerp met webonderdelen en het bestand in dezelfde map plaatsen als de .aspx pagina in dit codevoorbeeld.
Het tweede deel van het codevoorbeeld is het TextDisplayWebPart besturingselement. Als u het codevoorbeeld wilt uitvoeren, moet u deze broncode compileren. U kunt deze expliciet compileren en de resulterende assembly in de map Bin van uw website of de globale assemblycache plaatsen. U kunt de broncode ook in de map App_Code van uw site plaatsen, waar deze dynamisch wordt gecompileerd tijdens runtime. Zie Walkthrough: Een aangepast webserverbeheer ontwikkelen en gebruiken voor een overzicht van beide methoden voor het compileren. Houd er rekening mee dat het besturingselement een eigenschap heeft met de naam ContentText; deze eigenschap bevat de waarde die de gebruiker invoert in het tekstvak.
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
Het derde deel van het codevoorbeeld is de webpagina. U ziet dat het <asp:catalogzone> element voor de pagina declaraties voor twee CatalogPart besturingselementen bevat. Deze besturingselementen maken deel uit van een aangepast CatalogPartCollection object dat wordt gemaakt wanneer de Button1_Click methode wordt uitgevoerd. Het PageCatalogPart besturingselement bevat webserverbesturingselementen die eerder zijn gesloten door een gebruiker tijdens runtime. Besturingselementen in het PageCatalogPart besturingselement kunnen weer worden toegevoegd aan een pagina. Het DeclarativeCatalogPart besturingselement bevat een declaratie van het aangepaste TextDisplayWebPart besturingselement. Wanneer de pagina zich in de catalogusmodus bevindt, kan een gebruiker het TextDisplayWebPart besturingselement toevoegen aan de pagina, zodat deze in de normale bladermodus kan worden gebruikt.
<%@ 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>
Wanneer u de pagina in een browser laadt, kunt u de pagina overschakelen naar de catalogusmodus door Catalogus te selecteren in de vervolgkeuzelijst Weergavemodus . U kunt het aangepaste WebPart besturingselement toevoegen aan de pagina door het selectievakje ernaast in te schakelen en op Toevoegen te klikken. Klik op Sluiten om de pagina te retourneren om door de bladermodus te bladeren. Als u in het besturingselement dat u zojuist hebt toegevoegd, op het menu Werkwoorden klikt (de pijl-omlaag die op de titelbalk wordt weergegeven) en vervolgens op Sluiten klikt, wordt het besturingselement van de pagina verwijderd en toegevoegd aan het PageCatalogPart besturingselement. Ga terug naar de catalogusmodus en klik op de koppeling Paginacatalogus om de inhoud van het PageCatalogPart besturingselement weer te geven. U ziet dat het besturingselement dat u nu hebt gesloten, daar wordt weergegeven. Als u op de knop Eigenschappen van CatalogPart weergeven klikt, wordt het CatalogPartCollection object geopend en worden bepaalde eigenschappen van de ingesloten CatalogPart besturingselementen weergegeven.
Opmerkingen
De CatalogPartCollection klasse is een alleen-lezen verzameling CatalogPart besturingselementen, die doorgaans door een CatalogZoneBase zone worden gebruikt om de set CatalogPart besturingselementen in de zone bij te houden.
Wanneer een pagina met webonderdelen de catalogusmodus opent, wordt in de zone een nieuw CatalogPartCollection object gemaakt dat bestaat uit de CatalogPart besturingselementen. Elk CatalogPart besturingselement in de verzameling kan verwijzingen bevatten naar nul of meer webserverbesturingselementen, die worden weergegeven in de vorm van een catalogus met beschikbare serverbesturingselementen.
U kunt een CatalogPartCollection verzameling besturingselementen maken voor uw eigen programmatisch gebruik als u bijvoorbeeld een massabewerking moet uitvoeren op een set CatalogPart besturingselementen. Hoewel het CatalogPartCollection object alleen-lezen is, kunt u programmatische wijzigingen aanbrengen in de onderliggende besturingselementen waarnaar in de verzameling wordt verwezen.
Constructors
| Name | Description |
|---|---|
| CatalogPartCollection() |
Initialiseert een nieuwe, lege instantie van de CatalogPartCollection klasse. |
| CatalogPartCollection(CatalogPartCollection, ICollection) |
Initialiseert een nieuw exemplaar van de CatalogPartCollection klasse door een ICollection verzameling bestaande CatalogPart besturingselementen in een zone door te geven en een extra verzameling besturingselementen. |
| CatalogPartCollection(ICollection) |
Initialiseert een nieuw exemplaar van de CatalogPartCollection klasse door een ICollection verzameling CatalogPart besturingselementen door te geven. |
Velden
| Name | Description |
|---|---|
| Empty |
Verwijst naar een statisch, alleen-lezen, leeg exemplaar van de verzameling. |
Eigenschappen
| Name | Description |
|---|---|
| Count |
Hiermee haalt u het aantal elementen op dat in het ReadOnlyCollectionBase exemplaar is opgenomen. (Overgenomen van ReadOnlyCollectionBase) |
| InnerList |
Hiermee haalt u de lijst met elementen op die zijn opgenomen in het ReadOnlyCollectionBase exemplaar. (Overgenomen van ReadOnlyCollectionBase) |
| Item[Int32] |
Hiermee haalt u een lid van de verzameling op of stelt u deze in op basis van de positie in de verzameling. |
| Item[String] |
Retourneert een lid van de verzameling op basis van een unieke tekenreeks-id. |
Methoden
| Name | Description |
|---|---|
| Contains(CatalogPart) |
Retourneert een waarde die aangeeft of een bepaald besturingselement in de verzameling bestaat. |
| CopyTo(CatalogPart[], Int32) |
Hiermee kopieert u de verzameling naar een matrix met CatalogPart objecten. |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetEnumerator() |
Retourneert een enumerator die door het ReadOnlyCollectionBase exemplaar wordt herhaald. (Overgenomen van ReadOnlyCollectionBase) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IndexOf(CatalogPart) |
Retourneert de positie van een bepaald lid van de verzameling. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Kopieert het hele ReadOnlyCollectionBase naar een compatibele eendimensionale Arraywaarde, beginnend bij de opgegeven index van de doelmatrix. (Overgenomen van ReadOnlyCollectionBase) |
| ICollection.IsSynchronized |
Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot een ReadOnlyCollectionBase object wordt gesynchroniseerd (thread safe). (Overgenomen van ReadOnlyCollectionBase) |
| ICollection.SyncRoot |
Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot een ReadOnlyCollectionBase object te synchroniseren. (Overgenomen van ReadOnlyCollectionBase) |
Extensiemethoden
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Hiermee schakelt u parallelle uitvoering van een query in. |
| AsQueryable(IEnumerable) |
Converteert een IEnumerable naar een IQueryable. |
| Cast<TResult>(IEnumerable) |
Cast de elementen van een IEnumerable naar het opgegeven type. |
| OfType<TResult>(IEnumerable) |
Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type. |