WebPartDisplayMode 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.
Web Bölümleri sayfasının girebileceği çeşitli görüntüleme modları için ortak bir özellik kümesi tanımlar.
public ref class WebPartDisplayMode abstract
public abstract class WebPartDisplayMode
type WebPartDisplayMode = class
Public MustInherit Class WebPartDisplayMode
- Devralma
-
WebPartDisplayMode
Örnekler
Aşağıdaki kod örnekleri, Web Bölümleri sayfasında görüntüleme modlarının bildirim temelli kullanımını gösterir. Bu görüntüleme modlarının her biri, Web Bölümleri denetim kümesi tarafından uygulandığı gibi sınıfından WebPartDisplayMode türetilir.
Bu kod örneğinin dört bölümü vardır:
Özel WebPart denetim.
Özel denetimi barındırmak için bir bölge içeren bir Web sayfası.
Kullanıcıların Web sayfasındaki görüntüleme modlarını değiştirmesine olanak tanıyan bir kullanıcı denetimi.
Sayfanın tarayıcıda nasıl çalıştığını gösteren açıklama.
Örneğin ilk bölümü özel WebPart bir 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 çalışma zamanında dinamik olarak derlenecek App_Code klasörüne yerleştirebilirsiniz. Her iki derleme yönteminin de gösterimi için bkz. İzlenecek yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma.
using System;
using System.Security.Permissions;
using System.Web;
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;
const string _subTitle = "Contoso, Ltd";
public TextDisplayWebPart()
{
this.AllowClose = false;
}
[
Personalizable(PersonalizationScope.User, true),
WebBrowsable()
]
public String ContentText
{
get { return _contentText; }
set { _contentText = value; }
}
protected override void CreateChildControls()
{
Controls.Clear();
DisplayContent = new Label();
DisplayContent.BackColor =
System.Drawing.Color.LightBlue;
DisplayContent.Text = this.ContentText;
this.Controls.Add(DisplayContent);
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);
ChildControlsCreated = true;
}
private void submit_Click(object sender, EventArgs e)
{
// Update the label string.
if (!string.IsNullOrEmpty(input.Text))
{
this.ContentText = Page.Server.HtmlEncode(input.Text) + @"<br />";
// Clear the input textbox.
input.Text = String.Empty;
DisplayContent.Text = this.ContentText;
}
}
}
}
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 input As TextBox
Private DisplayContent As Label
Public Sub New()
Me.AllowClose = False
End Sub
<Personalizable(), WebBrowsable()> _
Public Property ContentText() As String
Get
Return _contentText
End Get
Set
_contentText = value
End Set
End Property
Protected Overrides Sub CreateChildControls()
Controls.Clear()
DisplayContent = New Label()
DisplayContent.Text = Me.ContentText
DisplayContent.BackColor = _
System.Drawing.Color.LightBlue
Me.Controls.Add(DisplayContent)
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)
ChildControlsCreated = True
End Sub
Private Sub submit_Click(ByVal sender As Object, _
ByVal e As EventArgs)
' Update the label string.
If input.Text <> String.Empty Then
Me.ContentText = Page.Server.HtmlEncode(input.Text) + "<br />"
' Clear the input textbox.
input.Text = String.Empty
DisplayContent.Text = Me.ContentText
End If
End Sub
End Class
End Namespace
Kod örneğinin ikinci bölümü, bir öğe içindeki standart ASP.NET Calendar denetimine başvuran bir <asp:webpartzone>
Web sayfasıdır; böylece denetim bir GenericWebPart denetimle sarmalanır ve çalışma zamanında temel Web Bölümleri işlevselliği sağlanır. Sayfa ayrıca, son kullanıcının katalog moduna geçme ve sayfaya denetim ekleme özelliğini gösteren bir <asp:catalogzone>
öğe içindeki denetime başvururTextDisplayWebPart
. Sayfa ayrıca, kullanıcıların sayfa düzenleme modundayken içinde yer alan denetimleri düzenlemesine <asp:webpartzone>
olanak tanıyan bir <asp:editorzone>
öğe içerir. Sayfanın üst kısmına yakın bir özel denetim yönergesi ve kullanıcı denetimi için bir yönerge daha vardır register
.
<%@ 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">
void Button1_Click(object sender, EventArgs e)
{
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Web Parts Display Modes</title>
</head>
<body>
<form id="Form2" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" />
<asp:webpartzone
id="WebPartZone1"
runat="server" BackImageUrl="~/MyImage.gif">
<zonetemplate>
<asp:Calendar
ID="Calendar1"
Runat="server"
Title="My Calendar" />
</zonetemplate>
</asp:webpartzone>
<asp:WebPartZone ID="WebPartZone2" Runat="server">
</asp:WebPartZone>
<asp:EditorZone ID="editzone1" Runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart
ID="appearanceeditor1"
Runat="server" />
<asp:LayoutEditorPart
ID="LayoutEditorPart1"
Runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<asp:CatalogZone ID="catalogzone1" Runat="server">
<ZoneTemplate>
<asp:DeclarativeCatalogPart
ID="declarativepart1"
Runat="server">
<WebPartsTemplate>
<aspSample:TextDisplayWebPart
runat="server"
id="textwebpart"
title = "Text Content WebPart" AllowClose="true"/>
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
</ZoneTemplate>
</asp:CatalogZone>
<br />
<asp:button
id="button1"
runat="server"
text="Catalog Mode"
OnClick="Button1_Click"
/>
</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">
Sub Button1_Click(Byval sender As Object, _
ByVal e As EventArgs)
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Web Parts Display Modes</title>
</head>
<body>
<form id="Form2" runat="server">
<asp:webpartmanager id="WebPartManager1" runat="server" />
<uc1:DisplayModeMenuVB ID="DisplayModeMenu1" runat="server" />
<asp:webpartzone
id="WebPartZone1"
runat="server" BackImageUrl="~/MyImage.gif">
<zonetemplate>
<asp:Calendar
ID="Calendar1"
Runat="server"
Title="My Calendar" />
</zonetemplate>
</asp:webpartzone>
<asp:WebPartZone ID="WebPartZone2" Runat="server">
</asp:WebPartZone>
<asp:EditorZone ID="editzone1" Runat="server">
<ZoneTemplate>
<asp:AppearanceEditorPart
ID="appearanceeditor1"
Runat="server" />
<asp:LayoutEditorPart
ID="LayoutEditorPart1"
Runat="server" />
</ZoneTemplate>
</asp:EditorZone>
<asp:CatalogZone ID="catalogzone1" Runat="server">
<ZoneTemplate>
<asp:DeclarativeCatalogPart
ID="declarativepart1"
Runat="server">
<WebPartsTemplate>
<aspSample:TextDisplayWebPart
runat="server"
id="textwebpart"
title = "Text Content WebPart"/>
</WebPartsTemplate>
</asp:DeclarativeCatalogPart>
</ZoneTemplate>
</asp:CatalogZone>
<br />
<asp:button
id="button1"
runat="server"
text="Catalog Mode"
OnClick="Button1_Click"
/>
</form>
</body>
</html>
Kod örneğinin üçüncü bölümü, kullanıcıların Web sayfasında görüntüleme modlarını değiştirmesine olanak tanıyan bir kullanıcı denetimidir. Bu denetimin kaynak kodunu DisplayModeMenuCS.ascx veya DisplayModeMenuVB.ascx adlı bir dosyaya kaydedin (kod örneği için kullandığınız dile bağlı olarak) ve Web sayfasıyla aynı dizine yerleştirin. Bu denetimdeki görüntü modları ve kaynak kodun açıklaması hakkında daha fazla ayrıntı için İzlenecek Yol: Web Bölümleri Sayfasında Görüntüleme Modlarını Değiştirme konusuna bakın.
<%@ 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);
}
}
// If shared scope is allowed for this user, display the scope-switching
// UI and select the appropriate radio button for the current user scope.
if (_manager.Personalization.CanEnterSharedScope)
{
Panel2.Visible = true;
if (_manager.Personalization.Scope == PersonalizationScope.User)
RadioButton1.Checked = true;
else
RadioButton2.Checked = true;
}
}
// 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;
}
// Set the selected item equal to the current display mode.
void Page_PreRender(object sender, EventArgs e)
{
ListItemCollection items = DisplayModeDropdown.Items;
int selectedIndex =
items.IndexOf(items.FindByText(_manager.DisplayMode.Name));
DisplayModeDropdown.SelectedIndex = selectedIndex;
}
// Reset all of a user's personalization data for the page.
protected void LinkButton1_Click(object sender, EventArgs e)
{
_manager.Personalization.ResetPersonalizationState();
}
// If not in User personalization scope, toggle into it.
protected void RadioButton1_CheckedChanged(object sender, EventArgs e)
{
if (_manager.Personalization.Scope == PersonalizationScope.Shared)
_manager.Personalization.ToggleScope();
}
// If not in Shared scope, and if user is allowed, toggle the scope.
protected void RadioButton2_CheckedChanged(object sender, EventArgs e)
{
if (_manager.Personalization.CanEnterSharedScope &&
_manager.Personalization.Scope == PersonalizationScope.User)
_manager.Personalization.ToggleScope();
}
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="230"
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:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</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
' If shared scope is allowed for this user, display the scope-switching
' UI and select the appropriate radio button for the current user scope.
If _manager.Personalization.CanEnterSharedScope Then
Panel2.Visible = True
If _manager.Personalization.Scope = PersonalizationScope.User Then
RadioButton1.Checked = True
Else
RadioButton2.Checked = True
End If
End If
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
' Set the selected item equal to the current display mode.
Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)
Dim items As ListItemCollection = DisplayModeDropdown.Items
Dim selectedIndex As Integer = _
items.IndexOf(items.FindByText(_manager.DisplayMode.Name))
DisplayModeDropdown.SelectedIndex = selectedIndex
End Sub
' Reset all of a user's personalization data for the page.
Protected Sub LinkButton1_Click(ByVal sender As Object, _
ByVal e As EventArgs)
_manager.Personalization.ResetPersonalizationState()
End Sub
' If not in User personalization scope, toggle into it.
Protected Sub RadioButton1_CheckedChanged(ByVal sender As Object, _
ByVal e As EventArgs)
If _manager.Personalization.Scope = PersonalizationScope.Shared Then
_manager.Personalization.ToggleScope()
End If
End Sub
' If not in Shared scope, and if user is allowed, toggle the scope.
Protected Sub RadioButton2_CheckedChanged(ByVal sender As Object, _
ByVal e As EventArgs)
If _manager.Personalization.CanEnterSharedScope AndAlso _
_manager.Personalization.Scope = PersonalizationScope.User Then
_manager.Personalization.ToggleScope()
End If
End Sub
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="230"
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:LinkButton ID="LinkButton1" runat="server"
Text="Reset User State"
ToolTip="Reset the current user's personalization data for the page."
Font-Size="8"
OnClick="LinkButton1_Click" />
<asp:Panel ID="Panel2" runat="server"
GroupingText="Personalization Scope"
Font-Bold="true"
Font-Size="8"
Visible="false" >
<asp:RadioButton ID="RadioButton1" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope" OnCheckedChanged="RadioButton1_CheckedChanged" />
<asp:RadioButton ID="RadioButton2" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
OnCheckedChanged="RadioButton2_CheckedChanged" />
</asp:Panel>
</asp:Panel>
</div>
Sayfayı bir tarayıcıya yüklediğinizde, farklı görüntü modlarına geçmek için Görüntü Modu açılan liste denetimini kullanabilirsiniz. Denetimleri düzenlemek için açılan liste denetiminde Düzenle'yi seçin. Belirli bir denetimi düzenlemek için, denetimin başlık çubuğundaki oka tıklayıp fiiller menüsünde Düzenle'ye tıklayarak fiil menüsünü kullanıma sunun. Bir denetim düzenleme modundayken, bu sayfaya eklenen düzenleme denetimleri, düzenlenen denetimin görünümünü ve düzenini değiştirmenize olanak tanır. İşiniz bittiğinde, sayfayı normal bir görünüme döndürmek için Görüntüleme Modu açılan liste denetiminde Gözat'ı seçin. Sayfaya denetim eklemek için katalog moduna geçin.
Görüntü Modu açılan liste denetimini kullanabileceğinize veya sayfanın alt kısmındaki düğmeye tıklayabileceğinize dikkat edin. yönteminin Button1_Click
satır içi kodu, görüntü modlarının program aracılığıyla nasıl değiştirılacağını gösterir. Katalog modundayken, özel TextDisplayWebPart
denetimi sayfaya ekleyebilirsiniz.
Açıklamalar
Web Bölümleri sayfası birkaç farklı görüntüleme moduna girebilir. Her görüntüleme modunda, Web Bölümleri kullanıcı arabiriminin (UI) belirli öğeleri gizlenir veya görüntülenir ve bir sayfada belirli türlerde kullanıcı değişiklikleri etkinleştirilir veya devre dışı bırakılır. Denetim, WebPartManager Web Bölümleri denetim kümesinde bulunan görüntüleme modları için uygulamayı içerir ve bir sayfanın görüntüleme modlarını yönetir.
Aşağıdaki tabloda kullanılabilir görüntüleme modlarını temsil eden alanlar listelenmektedir.
Görüntüleme modu | Description |
---|---|
BrowseDisplayMode | Web Bölümleri denetimlerini ve kullanıcı arabirimi öğelerini, son kullanıcıların sayfayı görüntülediği normal modda görüntüler. |
DesignDisplayMode | Bölge kullanıcı arabirimi öğelerini görüntüler ve kullanıcıların web bölümleri denetimlerini sürükleyerek sayfanın düzenini değiştirmesine olanak tanır. |
EditDisplayMode | Özel düzenleme kullanıcı arabirimi öğelerini görüntüler ve son kullanıcıların sayfadaki denetimleri düzenlemesine olanak tanır. |
CatalogDisplayMode | Özel katalog kullanıcı arabirimi öğelerini görüntüler ve son kullanıcıların sayfa denetimleri eklemesini ve kaldırmasını sağlar. |
ConnectDisplayMode | Özel bağlantılar kullanıcı arabirimi öğelerini görüntüler ve son kullanıcıların Web Bölümleri denetimlerini bağlamasını sağlar. |
Uygulayanlara Notlar
Geliştiriciler özel görüntü modları oluşturmak için sınıfından WebPartDisplayMode türetilebilir. Web Bölümleri sayfasında özel WebPartDisplayMode kullanıma açmak için sınıfından WebPartManager türetilmiş ve yöntemini geçersiz kılmanız CreateDisplayModes() gerekir.
Oluşturucular
WebPartDisplayMode(String) |
Görüntüleme modunun adı için bir değer başlatır. |
Özellikler
AllowPageDesign |
Sayfa belirli bir görüntüleme modundayken kullanıcıların Web Bölümleri sayfasının düzenini değiştirip değiştiremeyeceğini belirleyen bir değer alır. |
AssociatedWithToolZone |
Belirli bir görüntüleme modunun sınıfından türetilen ToolZone bir sınıfla ilişkilendirilip ilişkilendirildiğini belirten bir değer alır. |
Name |
Görüntüleme modunun adını alır. |
RequiresPersonalization |
Belirli bir görüntüleme modunun kişiselleştirmenin etkinleştirilmesini gerektip gerektirmediğini belirten bir değer alır. |
ShowHiddenWebParts |
Özelliği olarak ayarlanmış |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
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) |
IsEnabled(WebPartManager) |
Kullanıcıların belirli bir görüntüleme modundayken sayfayı kişiselleştirip kişiselleştiremeyeceğini belirten bir değer alı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) |