WebPartZoneCollection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Obsahuje kolekci ovládacích prvků jen pro WebPartZone čtení.
public ref class WebPartZoneCollection sealed : System::Collections::ReadOnlyCollectionBase
public sealed class WebPartZoneCollection : System.Collections.ReadOnlyCollectionBase
type WebPartZoneCollection = class
inherit ReadOnlyCollectionBase
Public NotInheritable Class WebPartZoneCollection
Inherits ReadOnlyCollectionBase
- Dědičnost
Příklady
Následující příklad kódu ukazuje použití WebPartZoneCollection třídy. Příklad kódu obsahuje tři části: dvě části kódu a vysvětlení, jak spustit příklad.
První část příkladu kódu je webová stránka, která obsahuje tři WebPartZone ovládací prvky, z nichž každý obsahuje jeden serverový ovládací prvek. Přestože jsou všechny tyto serverové ovládací prvky standardní ASP.NET ovládací prvky, mohou za běhu fungovat jako WebPart ovládací prvky, protože jsou umístěny v WebPartZone zóně.
<%@ Page Language="C#"
Codefile="webpartzonecollection_overview.cs"
Inherits="webpartzonecollection_overview" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>WebPartZoneCollection Demo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server" />
<asp:Table ID="Table1" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="lblZone1" runat="server"
Font-Bold="true"
AssociatedControlID="WebPartZone1">
WebPartZone1 Contents
</asp:Label>
<asp:WebPartZone ID="WebPartZone1"
runat="server" Width="230">
<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>
<div>
<asp:Label ID="lblZone2" runat="server"
Font-Bold="true"
AssociatedControlID="WebPartZone2">
WebPartZone2 Contents
</asp:Label>
</div>
<asp:WebPartZone ID="WebPartZone2"
runat="server" Width="230">
<ZoneTemplate>
<asp:Calendar ID="Calendar1"
runat="server"
Title="My Calendar"
CatalogIconImageUrl="Mine.gif" />
</ZoneTemplate>
</asp:WebPartZone>
</asp:TableCell>
<asp:TableCell VerticalAlign="top">
<asp:Label ID="lblZone3" runat="server"
Font-Bold="true"
AssociatedControlID="WebPartZone3">
WebPartZone3 Contents
</asp:Label>
<asp:WebPartZone ID="WebPartZone3" runat="server">
<ZoneTemplate>
<asp:Table runat="server" ID="table2"
Title="Employee Extensions">
<asp:TableHeaderRow>
<asp:TableHeaderCell Scope="Column">
Employee Name</asp:TableHeaderCell>
<asp:TableHeaderCell Scope="Column">
Extension</asp:TableHeaderCell>
</asp:TableHeaderRow>
<asp:TableRow>
<asp:TableCell>Alberts, Amy</asp:TableCell>
<asp:TableCell>x9764</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Hanif, Karim</asp:TableCell>
<asp:TableCell>x3240</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Penor, Lori</asp:TableCell>
<asp:TableCell>x4165</asp:TableCell>
</asp:TableRow>
</asp:Table>
</ZoneTemplate>
</asp:WebPartZone>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</div>
<hr />
<asp:Table ID="Table3" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Button ID="Button1" runat="server"
Width ="200" OnClick="Button1_Click"
Text="Total Zone Count" />
<br />
<asp:Button ID="Button2" runat="server"
Width ="200" OnClick="Button2_Click"
Text="Coll. Contains WebPartZone2" />
<br />
<asp:Button ID="Button3" runat="server"
Width ="200" OnClick="Button3_Click"
Text="Zone Names from Array" />
<br />
<asp:Button ID="Button4" runat="server"
Width ="200" OnClick="Button4_Click"
Text="WebPartZone1 Index" />
<br />
<asp:Button ID="Button5" runat="server"
Width ="200" OnClick="Button5_Click"
Text="Toggle Verb Render Mode" />
</asp:TableCell>
<asp:TableCell HorizontalAlign="right"
Width="200" VerticalAlign="top">
<asp:Label ID="Label1" runat="server"
Font-Bold="true" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</body>
</html>
<%@ Page Language="VB"
Codefile="webpartzonecollection_overview.vb"
Inherits="webpartzonecollection_overview" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>WebPartZoneCollection Demo</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:WebPartManager ID="mgr" runat="server" />
<asp:Table ID="Table1" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Label ID="lblZone1" runat="server"
Font-Bold="true"
AssociatedControlID="WebPartZone1">
WebPartZone1 Contents
</asp:Label>
<asp:WebPartZone ID="WebPartZone1"
runat="server" Width="230">
<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>
<div>
<asp:Label ID="lblZone2" runat="server"
Font-Bold="true"
AssociatedControlID="WebPartZone2">
WebPartZone2 Contents
</asp:Label>
</div>
<asp:WebPartZone ID="WebPartZone2"
runat="server" Width="230">
<ZoneTemplate>
<asp:Calendar ID="Calendar1"
runat="server"
Title="My Calendar"
CatalogIconImageUrl="Mine.gif" />
</ZoneTemplate>
</asp:WebPartZone>
</asp:TableCell>
<asp:TableCell VerticalAlign="top">
<asp:Label ID="lblZone3" runat="server"
Font-Bold="true"
AssociatedControlID="WebPartZone3">
WebPartZone3 Contents
</asp:Label>
<asp:WebPartZone ID="WebPartZone3" runat="server">
<ZoneTemplate>
<asp:Table runat="server" ID="table2"
Title="Employee Extensions">
<asp:TableHeaderRow>
<asp:TableHeaderCell Scope="Column">
Employee Name</asp:TableHeaderCell>
<asp:TableHeaderCell Scope="Column">
Extension</asp:TableHeaderCell>
</asp:TableHeaderRow>
<asp:TableRow>
<asp:TableCell>Alberts, Amy</asp:TableCell>
<asp:TableCell>x9764</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Hanif, Karim</asp:TableCell>
<asp:TableCell>x3240</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Penor, Lori</asp:TableCell>
<asp:TableCell>x4165</asp:TableCell>
</asp:TableRow>
</asp:Table>
</ZoneTemplate>
</asp:WebPartZone>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</div>
<hr />
<asp:Table ID="Table3" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Button ID="Button1" runat="server"
Width ="200" OnClick="Button1_Click"
Text="Total Zone Count" />
<br />
<asp:Button ID="Button2" runat="server"
Width ="200" OnClick="Button2_Click"
Text="Coll. Contains WebPartZone2" />
<br />
<asp:Button ID="Button3" runat="server"
Width ="200" OnClick="Button3_Click"
Text="Zone Names from Array" />
<br />
<asp:Button ID="Button4" runat="server"
Width ="200" OnClick="Button4_Click"
Text="WebPartZone1 Index" />
<br />
<asp:Button ID="Button5" runat="server"
Width ="200" OnClick="Button5_Click"
Text="Toggle Verb Render Mode" />
</asp:TableCell>
<asp:TableCell HorizontalAlign="right"
Width="200" VerticalAlign="top">
<asp:Label ID="Label1" runat="server"
Font-Bold="true" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</form>
</body>
</html>
Druhá část příkladu kódu je částečná třída, která obsahuje kód, který demonstruje použití WebPartZoneCollection třídy. Tento kód zpracovává události webové stránky.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class webpartzonecollection_overview : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = String.Empty;
Label1.Text = "WebPartZone Count: " + mgr.Zones.Count;
}
protected void Button2_Click(object sender, EventArgs e)
{
Label1.Text = String.Empty;
Label1.Text = mgr.Zones.Contains(WebPartZone2).ToString();
}
protected void Button3_Click(object sender, EventArgs e)
{
Label1.Text = String.Empty;
WebPartZoneBase[] zoneArray = new WebPartZoneBase[mgr.Zones.Count];
mgr.Zones.CopyTo(zoneArray, 0);
Label1.Text = zoneArray[2].ID;
Label1.Text += ", " + zoneArray[1].ID;
Label1.Text += ", " + zoneArray[0].ID;
}
protected void Button4_Click(object sender, EventArgs e)
{
Label1.Text = String.Empty;
Label1.Text = "WebPartZone1 index: " + mgr.Zones.IndexOf(WebPartZone1);
}
protected void Button5_Click(object sender, EventArgs e)
{
Label1.Text = String.Empty;
WebPartZoneCollection zoneCollection = mgr.Zones;
foreach (WebPartZone zone in zoneCollection)
{
if (zone.WebPartVerbRenderMode == WebPartVerbRenderMode.Menu)
zone.WebPartVerbRenderMode = WebPartVerbRenderMode.TitleBar;
else
zone.WebPartVerbRenderMode = WebPartVerbRenderMode.Menu;
}
}
}
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Partial Public Class webpartzonecollection_overview
Inherits Page
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = String.Empty
Label1.Text = "WebPartZone Count: " & mgr.Zones.Count
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = String.Empty
Label1.Text = mgr.Zones.Contains(WebPartZone2).ToString()
End Sub
Protected Sub Button3_Click(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = String.Empty
Dim zoneArray(mgr.Zones.Count) As WebPartZoneBase
mgr.Zones.CopyTo(zoneArray, 0)
Label1.Text = zoneArray(2).ID
Label1.Text += ", " & zoneArray(1).ID
Label1.Text += ", " & zoneArray(0).ID
End Sub
Protected Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = String.Empty
Label1.Text = "WebPartZone1 index: " & mgr.Zones.IndexOf(WebPartZone1)
End Sub
Protected Sub Button5_Click(ByVal sender As Object, ByVal e As EventArgs)
Label1.Text = String.Empty
Dim zoneCollection As WebPartZoneCollection = mgr.Zones
Dim zone As WebPartZone
For Each zone In zoneCollection
If zone.WebPartVerbRenderMode = WebPartVerbRenderMode.Menu Then
zone.WebPartVerbRenderMode = WebPartVerbRenderMode.TitleBar
Else
zone.WebPartVerbRenderMode = WebPartVerbRenderMode.Menu
End If
Next zone
End Sub
End Class
Načtěte stránku v prohlížeči. Tyto tři WebPartZone zóny jsou viditelné pomocí obsažených serverových ovládacích prvků. V dolní části stránky je několik tlačítek, z nichž každé ukazuje určitý aspekt práce s objektem WebPartZoneCollection . Kliknutím na jednotlivá tlačítka zobrazíte jeho vliv na zóny a jejich obsah. Pokud chcete zobrazit kód přidružený ke každému tlačítku, který ukazuje určitý aspekt objektu WebPartZoneCollection , podívejte se na kód v částečném souboru třídy, na který odkazujeme výše, jako druhou část tohoto příkladu kódu.
Poznámky
Třída WebPartZoneCollection obsahuje kolekci ovládacích WebPartZone prvků, které existují na stránce webových částí. Používá ho WebPartManager především ovládací prvek ke sledování a správě všech zón. Ovládací WebPartManager prvek uchovává odkaz na kolekci zón na stránce ve své vlastnosti jen Zones pro čtení.
Třída WebPartZoneCollection je užitečná, pokud chcete provádět operace s více zónami nebo jejich obsahem najednou nebo když potřebujete najít konkrétní zónu a prozkoumat nebo změnit její obsah. I když samotná kolekce zón je jen pro čtení a nemůžete změnit velikost samotného objektu kolekce, stále můžete získat odkazy na jednotlivé zóny v rámci kolekce, a pokud máte odkaz na objekt jednotlivé zóny, můžete změnit jeho hodnoty vlastností.
Třída WebPartZoneCollection má dva konstruktory. První z nich , WebPartZoneCollection()jednoduše inicializuje prázdnou instanci nové WebPartZoneCollection. Druhý WebPartZoneCollection(ICollection), inicializuje kolekci předáním existující kolekce zón.
Třída WebPartZoneCollection obsahuje Item[] vlastnost. Tato vlastnost umožňuje vyhledat WebPartZone ovládací prvek v kolekci předáním identifikátoru řetězce. Zóna je umístěna tak, že identifikátor řetězce odpovídá hodnotě ID vlastnosti v WebPartZoneBase zóně.
Třída WebPartZoneCollection má také několik metod, které jsou užitečné pro zkoumání nebo přístup k jejímu obsahu. Metoda Contains určuje, zda v kolekci existuje konkrétní zóna. Metoda CopyTo zkopíruje kolekci do pole WebPartZoneBase objektů. IndexOf Nakonec metoda vrátí index konkrétní zóny v kolekci.
Konstruktory
WebPartZoneCollection() |
Inicializuje prázdnou WebPartZoneCollection instanci třídy. |
WebPartZoneCollection(ICollection) |
Inicializuje instanci WebPartZoneCollection třídy předáním kolekce WebPartZone objektů. |
Vlastnosti
Count |
Získá počet prvků obsažených ReadOnlyCollectionBase v instanci. (Zděděno od ReadOnlyCollectionBase) |
InnerList |
Získá seznam prvků obsažených ReadOnlyCollectionBase v instanci. (Zděděno od ReadOnlyCollectionBase) |
Item[Int32] |
Vrátí konkrétního člena kolekce předáním celého čísla. |
Item[String] |
Vrátí konkrétního člena kolekce předáním jedinečného identifikátoru. |
Metody
Contains(WebPartZoneBase) |
Vrátí hodnotu označující, zda v kolekci existuje určitá zóna. |
CopyTo(WebPartZoneBase[], Int32) |
Zkopíruje kolekci do pole WebPartZoneBase objektů. |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetEnumerator() |
Vrátí enumerátor, který iteruje instanci ReadOnlyCollectionBase . (Zděděno od ReadOnlyCollectionBase) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Získá aktuální Type instanci. (Zděděno od Object) |
IndexOf(WebPartZoneBase) |
Vrátí pozici konkrétního člena kolekce. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
ICollection.CopyTo(Array, Int32) |
Zkopíruje celý ReadOnlyCollectionBase objekt do kompatibilního jednorozměrného Arrayobjektu , počínaje zadaným indexem cílového pole. (Zděděno od ReadOnlyCollectionBase) |
ICollection.IsSynchronized |
Získá hodnotu označující, zda je synchronizován přístup k objektu ReadOnlyCollectionBase (bezpečný z více vláken). (Zděděno od ReadOnlyCollectionBase) |
ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k objektu ReadOnlyCollectionBase . (Zděděno od ReadOnlyCollectionBase) |
Metody rozšíření
Cast<TResult>(IEnumerable) |
Přetypuje prvky objektu na IEnumerable zadaný typ. |
OfType<TResult>(IEnumerable) |
Filtruje prvky objektu IEnumerable na základě zadaného typu. |
AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
AsQueryable(IEnumerable) |
Převede objekt na IEnumerableIQueryable. |