EditorPartCollection Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimlerin EditorPart özelliklerini, düzenini, görünümünü ve davranışını WebPart düzenlemek için kullanılan bir denetim koleksiyonu içerir. Bu sınıf devralınamaz.
public ref class EditorPartCollection sealed : System::Collections::ReadOnlyCollectionBase
public sealed class EditorPartCollection : System.Collections.ReadOnlyCollectionBase
type EditorPartCollection = class
inherit ReadOnlyCollectionBase
Public NotInheritable Class EditorPartCollection
Inherits ReadOnlyCollectionBase
- Devralma
Örnekler
Aşağıdaki kod örneği, sınıfının çeşitli kullanımlarını EditorPartCollection 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 denetimler tarafından WebPart düzenlenen adlı
TextDisplayWebPartözel EditorPart bir denetim sınıfı.Denetime
TextDisplayWebPartbaşvuran bir Web sayfası, bölgede bildirilen Web Bölümleri denetim kümesindeki denetimlerin EditorZone birkaçını içeren bir EditorPart denetim içerir ve nesne EditorPartCollection 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 bir açıklama.
Bu kod örneğinin ilk bölümü, kullanıcıların Web sayfasındaki görüntü modlarını değiştirmesine olanak tanıyan kullanıcı denetimidir. Bu denetimdeki görüntü modları ve kaynak kodun açıklaması hakkında ayrıntılı bilgi için bkz . İzlenecek Yol: Web Bölümleri Sayfasında Görüntü Modlarını Değiştirme.
<%@ control language="C#" classname="DisplayModeMenuCS"%>
<script runat="server">
// Use a field to reference the current WebPartManager.
WebPartManager _manager;
void Page_Init(object sender, EventArgs e)
{
Page.InitComplete += new EventHandler(InitComplete);
}
void InitComplete(object sender, System.EventArgs e)
{
_manager = WebPartManager.GetCurrentWebPartManager(Page);
String browseModeName = WebPartManager.BrowseDisplayMode.Name;
// Fill the dropdown with the names of supported display modes.
foreach (WebPartDisplayMode mode in _manager.SupportedDisplayModes)
{
String modeName = mode.Name;
// Make sure a mode is enabled before adding it.
if (mode.IsEnabled(_manager))
{
ListItem item = new ListItem(modeName, modeName);
DisplayModeDropdown.Items.Add(item);
}
}
}
// Change the page to the selected display mode.
void DisplayModeDropdown_SelectedIndexChanged(object sender,
EventArgs e)
{
String selectedMode = DisplayModeDropdown.SelectedValue;
WebPartDisplayMode mode =
_manager.SupportedDisplayModes[selectedMode];
if (mode != null)
_manager.DisplayMode = mode;
}
void Page_PreRender(object sender, EventArgs e)
{
DisplayModeDropdown.SelectedValue =
_manager.DisplayMode.Name;
}
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="125"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" >
<asp:Label ID="Label1" runat="server"
Text=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120"
AssociatedControlID="DisplayModeDropdown"/>
<asp:DropDownList ID="DisplayModeDropdown"
runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
</asp:Panel>
</div>
<%@ control language="vb" classname="DisplayModeMenuVB"%>
<script runat="server">
' Use a field to reference the current WebPartManager.
Dim _manager As WebPartManager
Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
AddHandler Page.InitComplete, AddressOf InitComplete
End Sub
Sub InitComplete(ByVal sender As Object, ByVal e As System.EventArgs)
_manager = WebPartManager.GetCurrentWebPartManager(Page)
Dim browseModeName As String = _
WebPartManager.BrowseDisplayMode.Name
' Fill the dropdown with the names of supported display modes.
Dim mode As WebPartDisplayMode
For Each mode In _manager.SupportedDisplayModes
Dim modeName As String = mode.Name
' Make sure a mode is enabled before adding it.
If mode.IsEnabled(_manager) Then
Dim item As New ListItem(modeName, modeName)
DisplayModeDropdown.Items.Add(item)
End If
Next mode
End Sub
' Change the page to the selected display mode.
Sub DisplayModeDropdown_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As EventArgs)
Dim selectedMode As String = DisplayModeDropdown.SelectedValue
Dim mode As WebPartDisplayMode = _
_manager.SupportedDisplayModes(selectedMode)
If Not (mode Is Nothing) Then
_manager.DisplayMode = mode
End If
End Sub
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
DisplayModeDropdown.SelectedValue = _manager.DisplayMode.Name
End Sub
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="125"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" >
<asp:Label ID="Label1" runat="server"
Text=" Display Mode"
Font-Bold="true"
Font-Size="8"
Width="120"
AssociatedControlID="DisplayModeDropdown"/>
<asp:DropDownList ID="DisplayModeDropdown"
runat="server"
AutoPostBack="true"
Width="120"
OnSelectedIndexChanged="DisplayModeDropdown_SelectedIndexChanged" />
</asp:Panel>
</div>
Kod örneğinin ikinci bölümü denetimdir TextDisplayWebPart . Kod örneğinin çalışması için bu kaynak kodu 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 yerleştirebilirsiniz; 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. Bu özel özellik, denetim düzenleme modundayken ve standart WebPart denetim özellikleriyle birlikte düzenlenebilir.
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:editorzone> üç EditorPart denetime yönelik bildirimler içerdiğine dikkat edin. Bu denetimlerden ikisi, yöntem yürütürken oluşturulan özel EditorPartCollection bir nesnenin Button1_Click parçası haline gelir.
<%@ page language="c#" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenu"
Src="DisplayModecs.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">
protected void Button1_Click(object sender, EventArgs e)
{
ArrayList list = new ArrayList(2);
list.Add(AppearanceEditorPart1);
list.Add(PropertyGridEditorPart1);
// Pass an ICollection object to the constructor.
EditorPartCollection myParts = new EditorPartCollection(list);
foreach (EditorPart editor in myParts)
{
editor.BackColor = System.Drawing.Color.LightBlue;
editor.Description = "My " + editor.DisplayTitle + " editor.";
}
// Use the IndexOf property to locate an EditorPart control.
int propertyGridPart = myParts.IndexOf(PropertyGridEditorPart1);
myParts[propertyGridPart].ChromeType = PartChromeType.TitleOnly;
// Use the Contains method to see if an EditorPart exists.
if(!myParts.Contains(LayoutEditorPart1))
LayoutEditorPart1.BackColor = System.Drawing.Color.LightYellow;
// Use the CopyTo method to create an array of EditorParts.
EditorPart[] partArray = new EditorPart[3];
partArray[0] = LayoutEditorPart1;
myParts.CopyTo(partArray,1);
Label1.Text = "<h3>EditorParts in Custom Array</h3>";
foreach (EditorPart ePart in partArray)
{
Label1.Text += ePart.Title + "<br />";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>
Text Display WebPart with AppearanceEditorPart
</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenu ID="DisplayModeMenu1" runat="server" />
<asp:webpartzone id="zone1" runat="server">
<zonetemplate>
<aspSample:TextDisplayWebPart
runat="server"
id="textwebpart"
title = "Text Content WebPart" />
</zonetemplate>
</asp:webpartzone>
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1"
runat="server" />
<asp:LayoutEditorPart ID="LayoutEditorPart1"
runat="server" />
<asp:PropertyGridEditorPart ID="PropertyGridEditorPart1"
runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<asp:Button ID="Button1" runat="server"
Text="Create EditorPartCollection"
OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="" />
</form>
</body>
</html>
<%@ page language="vb" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenu"
Src="DisplayModevb.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">
Protected Sub Button1_Click(ByVal sender As Object, _
ByVal e As EventArgs)
Dim list As New ArrayList(2)
list.Add(AppearanceEditorPart1)
list.Add(PropertyGridEditorPart1)
' Pass an ICollection object to the constructor.
Dim myParts As New EditorPartCollection(list)
Dim editor As EditorPart
For Each editor In myParts
editor.BackColor = System.Drawing.Color.LightBlue
editor.Description = "My " + editor.DisplayTitle + " editor."
Next editor
' Use the IndexOf property to locate an EditorPart control.
Dim propertyGridPart As Integer = _
myParts.IndexOf(PropertyGridEditorPart1)
myParts(propertyGridPart).ChromeType = PartChromeType.TitleOnly
' Use the Contains method to see if an EditorPart exists.
If Not myParts.Contains(LayoutEditorPart1) Then
LayoutEditorPart1.BackColor = System.Drawing.Color.LightYellow
End If
' Use the CopyTo method to create an array of EditorParts.
Dim partArray(2) As EditorPart
partArray(0) = LayoutEditorPart1
myParts.CopyTo(partArray, 1)
Label1.Text = "<h3>EditorParts in Custom Array</h3>"
Dim ePart As EditorPart
For Each ePart In partArray
Label1.Text += ePart.Title + "<br />"
Next ePart
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>
Text Display WebPart with AppearanceEditorPart
</title>
</head>
<body>
<form id="form1" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenu ID="DisplayModeMenu1" runat="server" />
<asp:webpartzone id="zone1" runat="server">
<zonetemplate>
<aspSample:TextDisplayWebPart
runat="server"
id="textwebpart"
title = "Text Content WebPart" />
</zonetemplate>
</asp:webpartzone>
<asp:EditorZone ID="EditorZone1" runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart ID="AppearanceEditorPart1"
runat="server" />
<asp:LayoutEditorPart ID="LayoutEditorPart1"
runat="server" />
<asp:PropertyGridEditorPart ID="PropertyGridEditorPart1"
runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<asp:Button ID="Button1" runat="server"
Text="Create EditorPartCollection"
OnClick="Button1_Click" />
<asp:Label ID="Label1" runat="server" Text="" />
</form>
</body>
</html>
Sayfayı bir tarayıcıda yüklediğinizde, Görüntüleme Modu açılan liste denetiminde Düzenle'yi seçerek sayfayı düzenleme moduna geçirebilirsiniz. Denetimin başlık çubuğunda TextDisplayWebPart fiiller menüsüne (aşağı ok) tıklayabilir ve denetimi düzenlemek için Düzenle'ye tıklayabilirsiniz. Düzenleme kullanıcı arabirimi (UI) görünür olduğunda tüm EditorPart denetimleri görebilirsiniz. Nesneyi düzenleyen kod tarafından oluşturulan denetimler üzerindeki EditorPart etkileri görmek için EditorPartCollection düğmesine tıklayın. Ayrıca, denetimin PropertyGridEditorPart özel TextDisplayWebPart.ContentText özelliği düzenlemenize izin verdiğine dikkat edin. Özelliği, denetimin kaynak kodunda bir WebBrowsable öznitelikle işaretlendiğinden bu mümkündür. Düzenleme kullanıcı arabiriminde özellik değerini güncelleştirirseniz, özelliği güncelleştirmenin TextDisplayWebPart.ContentText etkisini görmek için sayfayı normal gözatma moduna döndürmeniz gerekir.
Açıklamalar
EditorPartCollection sınıfı, genellikle bölge tarafından bölgenin içerdiği denetim kümesini EditorPart izlemek için kullanılan salt okunur bir EditorZoneBase denetim koleksiyonudurEditorPart.
Web Bölümleri sayfası düzenleme moduna girdiğinde ve kullanıcı düzenlemek için bir denetim seçtiğinde düzenleme işlemi başlar. Bölge, bölge tarafından kapsanan EditorPartCollection denetimlerden oluşan yeni EditorPart bir nesne oluşturur. Düzenleme işleminin çeşitli aşamalarında, bölge koleksiyondaki denetimlerle EditorPartCollection şu anda düzenlenmekte olan denetim arasında EditorPart özellik değerlerini kaydetmek veya almak için nesnesine WebPart erişir.
Örneğin, bir EditorPartCollection dizi EditorPart denetim üzerinde toplu işlem yapmanız gerekiyorsa, kendi programlı kullanımınız için bir denetim koleksiyonu oluşturabilirsiniz. Nesne salt okunur olsa EditorPartCollection da, koleksiyonda başvuruda bulunılan temel denetimlerin özelliklerinde programlı değişiklikler yapabilirsiniz.
Oluşturucular
| Name | Description |
|---|---|
| EditorPartCollection() |
Sınıfının boş bir yeni örneğini EditorPartCollection başlatır. |
| EditorPartCollection(EditorPartCollection, ICollection) |
Bir denetim koleksiyonu ve ek EditorPartCollection denetimler koleksiyonu EditorPartCollection geçirerek EditorPart sınıfının yeni bir ICollection örneğini EditorPart başlatır. |
| EditorPartCollection(ICollection) |
Bir denetim koleksiyonu geçirerek sınıfının yeni bir EditorPartCollection örneğini ICollectionEditorPart başlatır. |
Alanlar
| Name | Description |
|---|---|
| Empty |
Koleksiyonun statik, salt okunur, boş bir örneğine başvurur. |
Özellikler
| Name | Description |
|---|---|
| Count |
Örnekte bulunan ReadOnlyCollectionBase öğe sayısını alır. (Devralındığı yer: ReadOnlyCollectionBase) |
| InnerList |
Örnekte bulunan ReadOnlyCollectionBase öğelerin listesini alır. (Devralındığı yer: ReadOnlyCollectionBase) |
| Item[Int32] |
Benzersiz bir tanımlayıcıya göre koleksiyonun belirli bir üyesini döndürür. |
Yöntemler
| Name | Description |
|---|---|
| Contains(EditorPart) |
Belirli bir denetimin koleksiyonda olup olmadığını gösteren bir değer döndürür. |
| CopyTo(EditorPart[], Int32) |
Koleksiyonu bir denetim dizisine EditorPart 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() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| IndexOf(EditorPart) |
Koleksiyonun belirli bir üyesinin konumunu döndürür. |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| ToString() |
Geçerli nesneyi temsil eden bir dize döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Hedef dizinin belirtilen dizininden başlayarak tamamını ReadOnlyCollectionBase uyumlu bir tek boyutluya Arraykopyalar. (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ı
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Sorgunun paralelleştirilmesini etkinleştirir. |
| AsQueryable(IEnumerable) |
bir IEnumerable öğesine IQueryabledönüştürür. |
| Cast<TResult>(IEnumerable) |
öğesinin IEnumerable öğelerini belirtilen türe yazar. |
| OfType<TResult>(IEnumerable) |
Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler. |