WebPartDisplayModeCollection 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 WebPartDisplayMode objektů. Tuto třídu nelze zdědit.
public ref class WebPartDisplayModeCollection sealed : System::Collections::CollectionBase
public sealed class WebPartDisplayModeCollection : System.Collections.CollectionBase
type WebPartDisplayModeCollection = class
inherit CollectionBase
Public NotInheritable Class WebPartDisplayModeCollection
Inherits CollectionBase
- Dědičnost
Příklady
Následující příklad kódu ukazuje práci s WebPartDisplayModeCollection třídou. Klíčovým bodem je, že musíte dědit z WebPartManager třídy a přepsat metodu CreateDisplayModes pro přidání vlastního WebPartDisplayMode objektu WebPartDisplayModeCollection do kolekce vytvořené ovládacím WebPartManager prvku.
Tento příklad kódu má pět částí:
Uživatelský ovládací prvek, který umožňuje změnit režimy zobrazení na stránce webových částí.
Webová stránka, která je hostitelem ostatních ovládacích prvků.
Uživatelský ovládací prvek, který se nachází v WebPartZone zóně na webové stránce, a umožňuje zadat a zobrazit text v popisku.
Soubor zdrojového kódu, který obsahuje dva ovládací prvky. Jeden je vlastní WebPartManager ovládací prvek; druhý je vlastní WebPartDisplayMode objekt, který se přidá do výchozích režimů zobrazení stránky.
Vysvětlení fungování příkladu
Zdrojový kód pro první část příkladu kódu, uživatelský ovládací prvek, který umožňuje změnit režimy zobrazení, pochází z jiného tématu. Aby tento příklad kódu fungoval, musíte získat soubor .ascx pro uživatelský ovládací prvek z návodu: Změna režimů zobrazení v tématu stránky webových částí a umístit soubor do stejné složky jako .aspx stránka v tomto příkladu kódu.
Druhou částí příkladu je webová stránka. Obsahuje dva WebPartZone ovládací prvky, jak uživatelské ovládací prvky, tak vlastní WebPartManager ovládací prvek.
Register Všimněte si direktiv v horní části stránky, které odkazují na uživatelské ovládací prvky a obor názvů pro kompilované ovládací prvky.
<%@ Page Language="C#" %>
<%@ Register Src="TextDisplaycs.ascx"
TagName="TextDisplay"
TagPrefix="uc2" %>
<%@ Register Src="DisplayModeMenuCS.ascx"
TagName="DisplayModeMenuCS"
TagPrefix="uc1" %>
<%@ Register Namespace="Samples.AspNet.CS.Controls"
TagPrefix="sample"
Assembly="CustomDisplayModeCS" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<uc1:DisplayModeMenuCS id="menu1" runat="server" />
<div>
<sample:NewWebPartManager runat="server" ID="wpgm1" />
<br />
<table style="width: 100%">
<tr valign="top" align="center" >
<td style="width: 100px; height: 123px">
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<uc2:TextDisplay ID="TextDisplay1" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
</td>
<td style="width: 100px; height: 123px">
<asp:WebPartZone ID="WebPartZone2" runat="server" />
</td>
</tr>
</table>
<br />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register Src="TextDisplayvb.ascx"
TagName="TextDisplay"
TagPrefix="uc2" %>
<%@ Register Src="DisplayModeMenuVB.ascx"
TagName="DisplayModeMenuVB"
TagPrefix="uc1" %>
<%@ Register Namespace="Samples.AspNet.VB.Controls"
TagPrefix="sample"
Assembly="CustomDisplayModeVB" %>
<!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 runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<uc1:DisplayModeMenuVB id="menu1" runat="server" />
<div>
<sample:NewWebPartManager runat="server" ID="wpgm1" />
<br />
<table style="width: 100%">
<tr valign="top" align="center" >
<td style="width: 100px; height: 123px">
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<uc2:TextDisplay ID="TextDisplay1" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
</td>
<td style="width: 100px; height: 123px">
<asp:WebPartZone ID="WebPartZone2" runat="server" />
</td>
</tr>
</table>
<br />
</div>
</form>
</body>
</html>
Třetí částí příkladu je uživatelský ovládací prvek pro zadávání a zobrazování textu. Všimněte si, že k vytvoření více zobrazení uživatelského rozhraní používá MultiView ovládací prvek. Jedno zobrazení se zobrazí s tlačítkem, druhým bez. Všimněte si, že v přepsáné OnPreRender metodě kód zkontroluje, zda je stránka aktuálně v režimu vlastního zobrazení, a pokud ano, zobrazí první zobrazení uživatelského ovládacího prvku, který obsahuje tlačítko. Pokud stránka není v režimu vlastního zobrazení (například pokud je stránka v režimu procházení nebo návrhu), tlačítko je skryté.
Důležité
Tento příklad obsahuje textové pole, které přijímá vstup uživatele, což je potenciální bezpečnostní hrozba. Ve výchozím nastavení ASP.NET webové stránky ověřují, že vstup uživatele neobsahuje skripty ani elementy HTML. Další informace naleznete v tématu Přehled zneužití skriptů.
<%@ Control Language="C#" %>
<%@ Import Namespace="Samples.AspNet.CS.Controls" %>
<script runat="server">
private string textContent;
[Personalizable]
public string TextContent
{
get { return textContent; }
set { textContent = value; }
}
protected override void OnPreRender(EventArgs e)
{
Label1.Text = this.textContent;
int viewIndex = 0;
WebPartManager wpmg =
WebPartManager.GetCurrentWebPartManager(this.Page);
NewWebPartManager myNewWpmg = wpmg as NewWebPartManager;
if (myNewWpmg != null)
{
WebPartDisplayMode mode =
myNewWpmg.SupportedDisplayModes[myNewWpmg.InLineEditDisplayMode.Name];
if (mode != null && myNewWpmg.DisplayMode == mode)
{
viewIndex = 1;
}
}
this.MultiView1.ActiveViewIndex = viewIndex;
}
protected void Button1_Click(object sender, EventArgs e)
{
this.TextContent = TextBox1.Text;
WebPartManager wpmg =
WebPartManager.GetCurrentWebPartManager(this.Page);
WebPartDisplayMode mode =
wpmg.SupportedDisplayModes[WebPartManager.BrowseDisplayMode.Name];
if (mode != null)
wpmg.DisplayMode = mode;
}
</script>
<asp:MultiView ID="MultiView1" runat="server">
<asp:View ID="View1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label" />
</asp:View>
<asp:View ID="View2" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" OnClick="Button1_Click"
runat="server" Text="Button" />
</asp:View>
</asp:MultiView>
<%@ Control Language="vb" %>
<%@ Import Namespace="Samples.AspNet.VB.Controls" %>
<script runat="server">
Private _textContent As String
<Personalizable()> _
Public Property TextContent() As String
Get
Return _textContent
End Get
Set(ByVal value As String)
_textContent = Value
End Set
End Property
Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
Label1.Text = Me.TextContent
Dim viewIndex As Integer = 0
Dim wpmg As WebPartManager = _
WebPartManager.GetCurrentWebPartManager(Me.Page)
Dim myNewWpmg As NewWebPartManager = _
CType(wpmg, NewWebPartManager)
If Not (myNewWpmg Is Nothing) Then
Dim mode As WebPartDisplayMode = _
myNewWpmg.SupportedDisplayModes(myNewWpmg.InLineEditDisplayMode.Name)
If Not (mode Is Nothing) AndAlso _
myNewWpmg.DisplayMode Is mode Then
viewIndex = 1
End If
End If
Me.MultiView1.ActiveViewIndex = viewIndex
End Sub
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As EventArgs)
Me.TextContent = TextBox1.Text
Dim wpmg As WebPartManager = _
WebPartManager.GetCurrentWebPartManager(Me.Page)
Dim mode As WebPartDisplayMode = _
wpmg.SupportedDisplayModes(WebPartManager.BrowseDisplayMode.Name)
If Not (mode Is Nothing) Then
wpmg.DisplayMode = mode
End If
End Sub
</script>
<asp:MultiView ID="MultiView1" runat="server">
<asp:View ID="View1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label" />
</asp:View>
<asp:View ID="View2" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" OnClick="Button1_Click"
runat="server" Text="Button" />
</asp:View>
</asp:MultiView>
Čtvrtá část příkladu je zdrojový soubor pro dvě vlastní třídy. Všimněte si, že vlastní WebPartManager třída přepíše metodu CreateDisplayModes , volá základní metodu pro přidání všech výchozích režimů zobrazení a pak přidá vlastní režim zobrazení. Vlastní třída režimu zobrazení , InLineEditDisplayModejednoduše dědí z WebPartDisplayMode, nastaví název režimu zobrazení v konstruktoru a přepíše řadu základních vlastností pro stanovení charakteristik vlastního zobrazení.
Pro spuštění příkladu kódu je nutné zkompilovat tento zdrojový kód. Můžete jej explicitně zkompilovat a výsledné sestavení umístit do složky Bin vašeho webu nebo globální mezipaměti sestavení. Případně můžete zdrojový kód umístit do složky App_Code webu, kde se bude dynamicky kompilovat za běhu. Návod, který ukazuje, jak se zkompilovat, naleznete v části Návod: Vývoj a použití vlastního ovládacího prvku webového serveru.
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Security.Permissions;
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 NewWebPartManager : WebPartManager
{
private static readonly WebPartDisplayMode _inLineEditDisplayMode =
new InlineWebPartEditDisplayMode();
public NewWebPartManager() {}
protected override WebPartDisplayModeCollection CreateDisplayModes()
{
WebPartDisplayModeCollection displayModes =
base.CreateDisplayModes();
displayModes.Add(_inLineEditDisplayMode);
return displayModes;
}
public WebPartDisplayMode InLineEditDisplayMode
{
get { return _inLineEditDisplayMode; }
}
private sealed class InlineWebPartEditDisplayMode : WebPartDisplayMode
{
public InlineWebPartEditDisplayMode()
: base("Inline Edit Display")
{
}
public override bool AllowPageDesign
{
get { return true; }
}
public override bool RequiresPersonalization
{
get { return true; }
}
public override bool ShowHiddenWebParts
{
get { return false; }
}
public override bool AssociatedWithToolZone
{
get { return false; }
}
public override bool IsEnabled(WebPartManager webPartManager)
{
return true;
}
}
}
}
Imports System.Collections.Generic
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Security.Permissions
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 NewWebPartManager
Inherits WebPartManager
Private Shared _inLineEditDisplayMode As WebPartDisplayMode = _
New InlineWebPartEditDisplayMode()
Public Sub New()
End Sub
Protected Overrides Function CreateDisplayModes() As WebPartDisplayModeCollection
Dim displayModes As WebPartDisplayModeCollection = MyBase.CreateDisplayModes()
displayModes.Add(_inLineEditDisplayMode)
Return displayModes
End Function
Public ReadOnly Property InLineEditDisplayMode() As WebPartDisplayMode
Get
Return _inLineEditDisplayMode
End Get
End Property
Private NotInheritable Class InlineWebPartEditDisplayMode
Inherits WebPartDisplayMode
Public Sub New()
MyBase.New("Inline Edit Display")
End Sub
Public Overrides ReadOnly Property AllowPageDesign() As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property RequiresPersonalization() _
As Boolean
Get
Return True
End Get
End Property
Public Overrides ReadOnly Property ShowHiddenWebParts() As Boolean
Get
Return False
End Get
End Property
Public Overrides ReadOnly Property AssociatedWithToolZone() _
As Boolean
Get
Return False
End Get
End Property
Public Overrides Function IsEnabled(ByVal webPartManager _
As WebPartManager) As Boolean
Return True
End Function
End Class
End Class
End Namespace
Pokud chcete spustit příklad kódu, načtěte stránku v prohlížeči. Všimněte si, že stránka je aktuálně v režimu procházení a nezobrazuje se žádné tlačítko. Pomocí rozevíracího seznamu Režim zobrazení změňte stránku na vložený režim zobrazení a všimněte si, že tlačítko je teď viditelné v dolním uživatelském ovládacím prvku. Přidejte nějaký text a kliknutím na tlačítko ovládací prvek aktualizujte. Všimněte si, že se zobrazení stránky vrátí do režimu procházení, zobrazí se zadaný text a tlačítko je znovu skryté, protože stránka není v režimu vlastního zobrazení.
Poznámky
Třída WebPartDisplayModeCollection je navržena tak, aby obsahovala kolekci WebPartDisplayMode objektů. Používá se primárně WebPartManager pomocí ovládacího prvku ke správě kolekcí WebPartDisplayMode objektů.
Režim zobrazení je zvláštní zobrazení webové stránky, která se zobrazí, když je přiřazena jako aktuální režim zobrazení vlastnosti WebPartManager.DisplayMode . Režimy zobrazení se používají v ovládacím prvku Webové části nastavené k vytváření zobrazení stránek, ve kterých můžou uživatelé provádět zvláštní úkoly, jako jsou úpravy ovládacích prvků nebo změna uspořádání rozložení stránky. Ovládací WebPartManager prvek definuje několik režimů zobrazení, včetně BrowseDisplayMode, DesignDisplayMode, EditDisplayMode, CatalogDisplayModea ConnectDisplayMode. Na kolekci režimů zobrazení odkazuje WebPartManager.DisplayModes vlastnost.
Na každé konkrétní webové stránce, která používá ovládací prvky webových částí, jsou k dispozici pouze určité režimy zobrazení. Výchozí režim procházení a režim návrhu jsou téměř vždy dostupné, ale ostatní režimy zobrazení jsou k dispozici pouze v případě, že jsou na stránce k dispozici odpovídající typy zón. Další informace najdete v přehledu WebPartDisplayMode třídy.
Ovládací WebPartManager prvek sleduje dostupné režimy zobrazení na stránce s jeho SupportedDisplayModes vlastností. Tato vlastnost odkazuje na WebPartDisplayModeCollection objekt, který obsahuje všechny podporované režimy zobrazení.
Třída WebPartDisplayModeCollection nemá vystavený konstruktor, takže nemůžete vytvořit vlastní novou instanci. Pokud vytvoříte vlastní WebPartDisplayMode objekt a chcete, aby byl součástí kolekce podporovaných režimů zobrazení v ovládacím WebPartManager prvku, musíte dědit z WebPartManager třídy, přepsat metodu CreateDisplayModes , volat základní metodu pro vytvoření kolekce a potom přidat všechny vlastní režimy zobrazení do kolekce pomocí jeho Add metody.
Třída WebPartDisplayModeCollection má dvě veřejné vlastnosti. Vlastnost IsReadOnly je jen pro čtení, která označuje, zda je kolekce určena jen pro čtení. Přetížená Item[] vlastnost poskytuje přístup k členům kolekce.
Třída WebPartDisplayModeCollection má také několik metod. Metoda Add , již zmíněná, umožňuje přidat WebPartDisplayMode objekty do kolekce. Metoda Contains určuje, zda určitý režim zobrazení existuje v kolekci. Metoda CopyTo zkopíruje kolekci do pole objektů. Metoda IndexOf vrátí index konkrétního režimu zobrazení v kolekci. Insert Nakonec metoda umožňuje vložit objekt režimu zobrazení do konkrétního indexu v kolekci.
Vlastnosti
| Name | Description |
|---|---|
| Capacity |
Získá nebo nastaví počet prvků, které CollectionBase může obsahovat. (Zděděno od CollectionBase) |
| Count |
Získá počet prvků obsažených CollectionBase v instanci. Tuto vlastnost nelze přepsat. (Zděděno od CollectionBase) |
| InnerList |
ArrayList Získá obsahující seznam prvků v CollectionBase instanci. (Zděděno od CollectionBase) |
| IsReadOnly |
Získá hodnotu určující, zda kolekce je jen pro čtení. |
| Item[Int32] |
Získá konkrétního člena kolekce podle jeho indexu. |
| Item[String] |
Získá konkrétního člena kolekce podle jedinečného identifikátoru. |
| List |
IList Získá obsahující seznam prvků v CollectionBase instanci. (Zděděno od CollectionBase) |
Metody
| Name | Description |
|---|---|
| Add(WebPartDisplayMode) |
WebPartDisplayMode Přidá objekt do kolekce. |
| Clear() |
Odebere všechny objekty z CollectionBase instance. Tuto metodu nelze přepsat. (Zděděno od CollectionBase) |
| Contains(WebPartDisplayMode) |
Vrátí hodnotu určující, zda určitý WebPartDisplayMode objekt existuje v kolekci. |
| CopyTo(WebPartDisplayMode[], Int32) |
Zkopíruje kolekci do pole WebPartDisplayMode objektů. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetEnumerator() |
Vrátí enumerátor, který iteruje prostřednictvím CollectionBase instance. (Zděděno od CollectionBase) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IndexOf(WebPartDisplayMode) |
Vrátí pozici konkrétního člena kolekce. |
| Insert(Int32, WebPartDisplayMode) |
Vloží WebPartDisplayMode objekt do kolekce na určené pozici indexu. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnClear() |
Provádí další vlastní procesy při vymazání obsahu CollectionBase instance. (Zděděno od CollectionBase) |
| OnClearComplete() |
Provádí další vlastní procesy po vymazání obsahu CollectionBase instance. (Zděděno od CollectionBase) |
| OnInsert(Int32, Object) |
Provádí další vlastní procesy před vložením nového prvku do CollectionBase instance. (Zděděno od CollectionBase) |
| OnInsertComplete(Int32, Object) |
Provede další vlastní procesy po vložení nového prvku do CollectionBase instance. (Zděděno od CollectionBase) |
| OnRemove(Int32, Object) |
Provádí další vlastní procesy při odebírání elementu CollectionBase z instance. (Zděděno od CollectionBase) |
| OnRemoveComplete(Int32, Object) |
Provádí další vlastní procesy po odebrání elementu CollectionBase z instance. (Zděděno od CollectionBase) |
| OnSet(Int32, Object, Object) |
Před nastavením hodnoty v CollectionBase instanci provede další vlastní procesy. (Zděděno od CollectionBase) |
| OnSetComplete(Int32, Object, Object) |
Provede další vlastní procesy po nastavení hodnoty v CollectionBase instanci. (Zděděno od CollectionBase) |
| OnValidate(Object) |
Provádí další vlastní procesy při ověřování hodnoty. (Zděděno od CollectionBase) |
| RemoveAt(Int32) |
Odebere prvek v zadaném indexu CollectionBase instance. Tato metoda není přepsatelná. (Zděděno od CollectionBase) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Zkopíruje celý CollectionBase soubor do kompatibilního jednorozměrného Array, počínaje zadaným indexem cílového pole. (Zděděno od CollectionBase) |
| ICollection.IsSynchronized |
Získá hodnotu označující, zda je přístup k CollectionBase této synchronizaci (bezpečné vlákno). (Zděděno od CollectionBase) |
| ICollection.SyncRoot |
Získá objekt, který lze použít k synchronizaci přístupu k CollectionBase. (Zděděno od CollectionBase) |
| IList.Add(Object) |
Přidá objekt na konec objektu CollectionBase. (Zděděno od CollectionBase) |
| IList.Contains(Object) |
Určuje, zda obsahuje CollectionBase určitý prvek. (Zděděno od CollectionBase) |
| IList.IndexOf(Object) |
Vyhledá zadaný Object index a vrátí index založený na nule prvního výskytu v celém CollectionBaserozsahu . (Zděděno od CollectionBase) |
| IList.Insert(Int32, Object) |
Vloží prvek do zadaného indexu CollectionBase . (Zděděno od CollectionBase) |
| IList.IsFixedSize |
Získá hodnotu určující, zda CollectionBase má pevnou velikost. (Zděděno od CollectionBase) |
| IList.IsReadOnly |
Získá hodnotu určující, zda je jen pro CollectionBase čtení. (Zděděno od CollectionBase) |
| IList.Item[Int32] |
Získá nebo nastaví prvek v zadaném indexu. (Zděděno od CollectionBase) |
| IList.Remove(Object) |
Odebere první výskyt konkrétního objektu z objektu CollectionBase. (Zděděno od CollectionBase) |
Metody rozšíření
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
| AsQueryable(IEnumerable) |
Převede IEnumerable na IQueryable. |
| Cast<TResult>(IEnumerable) |
Přetypuje prvky IEnumerable na zadaný typ. |
| OfType<TResult>(IEnumerable) |
Filtruje prvky IEnumerable na základě zadaného typu. |