WebPartPersonalization 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.
Alt düzey kişiselleştirme işlemlerini uygular.
public ref class WebPartPersonalization
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))]
public class WebPartPersonalization
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))>]
type WebPartPersonalization = class
Public Class WebPartPersonalization
- Devralma
-
WebPartPersonalization
- Öznitelikler
Örnekler
Aşağıdaki kod örneği, sınıfın WebPartPersonalization nasıl kullanıldığını gösterir ve kişiselleştirme kapsamının kişiselleştirilmiş özelliklerin sonuçlarını nasıl etkilediğine ilişkin bir örnek sağlar. Bu örnekte beş dosya vardır:
Bildirim temelli olarak her biri denetime sahip iki Web Bölümü bölgesi oluşturan bir .aspx sayfası.
Kullanıcının durum bilgilerini değiştirmek ve paylaşılan kapsama girmek için kullanıcının yetkilendirme haklarına göre metin kutusu arka plan rengi uygulayan kişiselleştirilmiş bir özelliği değiştirmesine olanak tanıyan adlı
Color.ascx
bir kullanıcı denetimi.Geçerli sayfa kapsamının ne olduğunu ve geçerli kullanıcının paylaşılan kapsamı girmek veya verileri değiştirmek için hangi haklara sahip olduğunu belirten adlı
Persmode.ascx
bir kullanıcı denetimi; ayrıca biri kapsamı değiştirmek, diğeri de geçerli kullanıcı kişiselleştirme bilgilerini sıfırlamak için olmak üzere iki düğme sağlar.Kullanıcıları yetkilendirmek için kullanılan bir oturum açma denetimi.
Kullanıcıya kişiselleştirme durumunu değiştirme ve paylaşılan kapsam girme yetkisi verme örneği sağlayan bölümü olan Web.config dosyası.
Aşağıdaki kod, ve iki Web Bölümü bölgesi içeren bir WebPartManager aspx sayfası oluşturur ve ve Persmode.ascx
denetimlerini görüntülerColor.ascx
. Sayfa, geçerli kullanıcı bilgilerini almak için kullanılan bir oturum açma sayfası yükler. Sayfaya erişecek kullanıcıları oluşturmak için Microsoft Visual Studio 2005'te ASP.NET Web Sitesi Yönetim Aracı'nı kullanın. Kapsamı değiştirmek ve durum bilgilerini değiştirmek için yapılandırma dosyasında kullanıcı tarafından verilen yetkilendirme örneği için Web.config dosyasına bakın.
<%@ Page Language="C#" %>
<%@ Register TagPrefix="control" TagName="colorcontrol" Src="~/color.ascx"%>
<%@Register TagPrefix="pmode" TagName="persmode" Src="~/persMode.ascx" %>
<!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">
<!-- Create Web Part manager and zone for the color user control. -->
<asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" HeaderText="Color Change Zone">
<ZoneTemplate>
<!-- Note that the control is Shared since it is declared on the page. -->
<control:colorcontrol id="color1" title="Color Control" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
<br />
<!-- Create Web Part zone for the personalization mode user control. -->
<asp:WebPartZone ID="WebPartZone2" runat="server" HeaderText="Scope Change Zone" Height="109px">
<ZoneTemplate>
<pmode:persmode ID="Persmode1" runat="server" title="Scope Tool"/>
</ZoneTemplate>
</asp:WebPartZone>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<%@ Register TagPrefix="control" TagName="colorcontrol" Src="~/color.ascx"%>
<%@Register TagPrefix="pmode" TagName="persmode" Src="~/persMode.ascx" %>
<!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">
<!-- Create Web Part manager and zone for the color user control. -->
<asp:WebPartManager ID="WebPartManager1" runat="server"></asp:WebPartManager>
<asp:WebPartZone ID="WebPartZone1" runat="server" HeaderText="Color Change Zone">
<ZoneTemplate>
<!-- Note that the control is Shared since it is declared on the page. -->
<control:colorcontrol id="color1" title="Color Control" runat="server" />
</ZoneTemplate>
</asp:WebPartZone>
<br />
<!-- Create Web Part zone for the personalization mode user control. -->
<asp:WebPartZone ID="WebPartZone2" runat="server" HeaderText="Scope Change Zone" Height="109px">
<ZoneTemplate>
<pmode:persmode ID="Persmode1" runat="server" title="Scope Tool"/>
</ZoneTemplate>
</asp:WebPartZone>
</form>
</body>
</html>
Aşağıdaki örnek kod bir oturum açma sayfası oluşturur. Başarılı bir oturum açma işleminin ardından ana aspx sayfasına yönlendirilir.
Önemli
Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz. Betik Açıklarına Genel Bakış.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Login ID="Login1" runat="server" BorderWidth="1px" BorderColor="#E6E2D8" BorderPadding="4"
BorderStyle="Solid" BackColor="#F7F6F3" ForeColor="#333333" Font-Names="Verdana"
Font-Size="0.8em" DestinationPageUrl="~/Defaultcs.aspx">
<InstructionTextStyle ForeColor="Black" Font-Italic="True" Font-Size="0.8em" />
<LoginButtonStyle Font-Names="Verdana" Font-Size="0.8em" BorderStyle="Solid" BorderWidth="1px"
BorderColor="#CCCCCC" BackColor="#FFFBFF" ForeColor="#284775" />
<TextBoxStyle Font-Size="0.8em" />
<LabelStyle Font-Size="0.8em" />
<TitleTextStyle ForeColor="White" Font-Size="0.9em" Font-Bold="True" BackColor="#5D7B9D" />
<HyperLinkStyle Font-Size="0.8em" />
<CheckBoxStyle Font-Size="0.8em" />
<FailureTextStyle ForeColor="#FF0000" Font-Size="0.8em" />
</asp:Login>
You can create new users with the ASP.NET Web Site Administration Tool in Microsoft Visual Studio 2005.
See also the web.config file for user authorization examples.
</div>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Login ID="Login1" runat="server" BorderWidth="1px" BorderColor="#E6E2D8" BorderPadding="4"
BorderStyle="Solid" BackColor="#F7F6F3" ForeColor="#333333" Font-Names="Verdana"
Font-Size="0.8em" DestinationPageUrl="~/Defaultvb.aspx">
<InstructionTextStyle ForeColor="Black" Font-Italic="True" Font-Size="0.8em" />
<LoginButtonStyle Font-Names="Verdana" Font-Size="0.8em" BorderStyle="Solid" BorderWidth="1px"
BorderColor="#CCCCCC" BackColor="#FFFBFF" ForeColor="#284775" />
<TextBoxStyle Font-Size="0.8em" />
<LabelStyle Font-Size="0.8em" />
<TitleTextStyle ForeColor="White" Font-Size="0.9em" Font-Bold="True" BackColor="#5D7B9D" />
<HyperLinkStyle Font-Size="0.8em" />
<CheckBoxStyle Font-Size="0.8em" />
<FailureTextStyle ForeColor="#FF0000" Font-Size="0.8em" />
</asp:Login>
You can create new users with the ASP.NET Web Site Administration Tool in Microsoft Visual Studio 2005.
See also the web.config file for user authorization examples.
</div>
</form>
</body>
</html>
Aşağıdaki örnek kod, bu uygulama için Web.config dosyasının bir bölümüdür. Bu bölümde, paylaşılan kişiselleştirme kapsamını girmek ve kişiselleştirme durumu bilgilerini değiştirmek için bir kullanıcı için yetkilendirmenin (bu örnekte "kullanıcı2") nasıl ayarlanacağı gösterilmektedir. Ayrıca, "yönetici" rolündeki kullanıcıların paylaşılan kişiselleştirme kapsamına girmesine ve kişiselleştirme durumu bilgilerini değiştirmesine izin vermek için kullanılabilecek bir rol örneği de gösterilir.
<webParts>
<personalization defaultProvider="AspNetSqlPersonalizationProvider">
<authorization>
<allow users="user2" verbs="enterSharedScope, modifyState"/>
<allow roles="admin" verbs="enterSharedScope, modifyState"/>
</authorization>
</personalization>
</webParts>
<webParts>
<personalization defaultProvider="AspNetSqlPersonalizationProvider">
<authorization>
<allow users="user2" verbs="enterSharedScope, modifyState"/>
<allow roles="admin" verbs="enterSharedScope, modifyState"/>
</authorization>
</personalization>
</webParts>
Aşağıdaki örnek kod, kullanıcının kişiselleştirilmiş bir özelliği değiştirmesine olanak tanıyan adlı Color.ascx
bir kullanıcı denetimi oluşturur. Bu örnekte, geçerli kişiselleştirme kapsamına ve kullanıcının yetkilendirme haklarına göre iki metin kutusu arka plan rengi kullanılır.
Önemli
Bu örnekte, olası bir güvenlik tehdidi olan kullanıcı girişini kabul eden bir metin kutusu vardır. Varsayılan olarak, ASP.NET Web sayfaları kullanıcı girişinin betik veya HTML öğeleri içermediğini doğrular. Daha fazla bilgi için bkz. Betik Açıklarına Genel Bakış.
<%@ Control Language="C#" %>
<script runat="server">
// User a field to reference the current WebPartManager.
private WebPartManager _manager;
// Defines personalized property for User scope. In this case, the property is
// the background color of the text box.
[Personalizable(PersonalizationScope.User)]
public System.Drawing.Color UserColorChoice
{
get
{
return _coloruserTextBox.BackColor;
}
set
{
_coloruserTextBox.BackColor = value;
}
}
// Defines personalized property for Shared scope. In this case, the property is
// the background color of the text box.
[Personalizable(PersonalizationScope.Shared) ]
public System.Drawing.Color SharedColorChoice
{
get
{
return _colorsharedTextBox.BackColor;
}
set
{
_colorsharedTextBox.BackColor = value;
}
}
void Page_Init(object sender, EventArgs e)
{
_manager = WebPartManager.GetCurrentWebPartManager(Page);
}
protected void Page_Load(object src, EventArgs e)
{
// If Web Parts manager scope is User, hide the button that changes shared control.
if (_manager.Personalization.Scope == PersonalizationScope.User)
{
_sharedchangeButton.Visible = false;
if (!_manager.Personalization.IsModifiable)
_userchangeButton.Enabled = false;
}
else
{
_sharedchangeButton.Visible = true;
if (!_manager.Personalization.IsModifiable)
{
_sharedchangeButton.Enabled = false;
_userchangeButton.Enabled = false;
}
}
}
// Changes color of the User text box background when button clicked by authorized user.
protected void _userButton_Click(object src, EventArgs e)
{
switch(_coloruserTextBox.BackColor.Name)
{
case "Red":
_coloruserTextBox.BackColor = System.Drawing.Color.Yellow;
break;
case "Yellow":
_coloruserTextBox.BackColor = System.Drawing.Color.Green;
break;
case "Green":
_coloruserTextBox.BackColor = System.Drawing.Color.Red;
break;
}
}
// Changes color of the Shared text box background when button clicked by authorized user.
protected void _sharedButton_Click(object src, EventArgs e)
{
switch (_colorsharedTextBox.BackColor.Name)
{
case "Red":
_colorsharedTextBox.BackColor = System.Drawing.Color.Yellow;
break;
case "Yellow":
_colorsharedTextBox.BackColor = System.Drawing.Color.Green;
break;
case "Green":
_colorsharedTextBox.BackColor = System.Drawing.Color.Red;
break;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WebParts Personalization Example</title>
</head>
<body>
<p>
<asp:LoginName ID="LoginName1" runat="server" BorderWidth="500" BorderStyle="none" />
<asp:LoginStatus ID="LoginStatus1" LogoutAction="RedirectToLoginPage" runat="server" />
</p>
<asp:Label ID="ScopeLabel" Text="Scoped Properties:" runat="server" Width="289px"></asp:Label>
<br />
<table style="width: 226px">
<tr>
<td>
<asp:TextBox ID="_coloruserTextBox" Font-Bold="True" Height="110px"
runat="server" Text="User Property" BackColor="red" Width="110px" />
</td>
<td>
<asp:TextBox ID="_colorsharedTextBox" runat="server" Height="110px"
Width="110px" Text="Shared Property" BackColor="red" Font-Bold="true" />
</td>
</tr>
<tr>
<td>
<asp:Button Text="Change User Color" ID="_userchangeButton"
runat="server" OnClick="_userButton_Click" />
</td>
<td >
<asp:Button Text="Change Shared Color" ID="_sharedchangeButton"
runat="server" OnClick="_sharedButton_Click" />
</td>
</tr>
</table>
</body>
</html>
<%@ Control Language="VB" %>
<script runat="server">
' User a field to reference the current WebPartManager.
Private _manager As WebPartManager
' Defines personalized property for User scope. In this case, the property is
' the background color of the text box.
<Personalizable(PersonalizationScope.User)> _
Public Property UserColorChoice() As System.Drawing.Color
Get
Return _coloruserTextBox.BackColor
End Get
Set
_coloruserTextBox.BackColor = value
End Set
End Property
' Defines personalized property for Shared scope. In this case, the property is
' the background color of the text box.
<Personalizable(PersonalizationScope.Shared)> _
Public Property SharedColorChoice() As System.Drawing.Color
Get
Return _colorsharedTextBox.BackColor
End Get
Set
_colorsharedTextBox.BackColor = value
End Set
End Property
Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs)
_manager = WebPartManager.GetCurrentWebPartManager(Page)
End Sub 'Page_Init
Protected Sub Page_Load(ByVal src As Object, ByVal e As EventArgs)
' If Web Parts manager scope is User, hide the button that changes shared control.
If _manager.Personalization.Scope = PersonalizationScope.User Then
_sharedchangeButton.Visible = False
If Not _manager.Personalization.IsModifiable Then
_userchangeButton.Enabled = False
End If
Else
_sharedchangeButton.Visible = True
If Not _manager.Personalization.IsModifiable Then
_sharedchangeButton.Enabled = False
_userchangeButton.Enabled = False
End If
End If
End Sub 'Page_Load
' Changes color of the User text box background when button clicked by authorized user.
Protected Sub _userButton_Click(ByVal src As Object, ByVal e As EventArgs)
Select Case _coloruserTextBox.BackColor.Name
Case "Red"
_coloruserTextBox.BackColor = System.Drawing.Color.Yellow
Case "Yellow"
_coloruserTextBox.BackColor = System.Drawing.Color.Green
Case "Green"
_coloruserTextBox.BackColor = System.Drawing.Color.Red
End Select
End Sub '_userButton_Click
' Changes color of the Shared text box background when button clicked by authorized user.
Protected Sub _sharedButton_Click(ByVal src As Object, ByVal e As EventArgs)
Select Case _colorsharedTextBox.BackColor.Name
Case "Red"
_colorsharedTextBox.BackColor = System.Drawing.Color.Yellow
Case "Yellow"
_colorsharedTextBox.BackColor = System.Drawing.Color.Green
Case "Green"
_colorsharedTextBox.BackColor = System.Drawing.Color.Red
End Select
End Sub '_sharedButton_Click
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WebParts Personalization Example</title>
</head>
<body>
<p>
<asp:LoginName ID="LoginName1" runat="server" BorderWidth="500" BorderStyle="none" />
<asp:LoginStatus ID="LoginStatus1" LogoutAction="RedirectToLoginPage" runat="server" />
</p>
<asp:Label ID="ScopeLabel" Text="Scoped Properties:" runat="server" Width="289px"></asp:Label>
<br />
<table style="width: 226px">
<tr>
<td>
<asp:TextBox ID="_coloruserTextBox" Font-Bold="True" Height="110px"
runat="server" Text="User Property" BackColor="red" Width="110px" />
</td>
<td>
<asp:TextBox ID="_colorsharedTextBox" runat="server" Height="110px"
Width="110px" Text="Shared Property" BackColor="red" Font-Bold="true" />
</td>
</tr>
<tr>
<td>
<asp:Button Text="Change User Color" ID="_userchangeButton"
runat="server" OnClick="_userButton_Click" />
</td>
<td >
<asp:Button Text="Change Shared Color" ID="_sharedchangeButton"
runat="server" OnClick="_sharedButton_Click" />
</td>
</tr>
</table>
</body>
</html>
Aşağıdaki örnek kod, geçerli kişiselleştirme kapsamını ve durumu değiştirme ve paylaşılan kapsamı girme kullanıcı haklarını gösteren adlı Persmode.ascx
bir kullanıcı denetimi oluşturur. Ayrıca, geçerli kişiselleştirme durumunu sıfırlamak için bir sıfırlama düğmesi de vardır.
<%@ control language="C#" %>
<script runat="server">
// Use a field to reference the current WebPartManager.
private WebPartManager _manager;
protected void Page_Load(object src, EventArgs e)
{
// Get the current Web Parts manager.
_manager = WebPartManager.GetCurrentWebPartManager(Page);
// All radio buttons are disabled; the button settings show what the current state is.
EnterSharedRadioButton.Enabled = false;
ModifyStateRadioButton.Enabled = false;
// If Web Parts manager is in User scope, set scope button.
if (_manager.Personalization.Scope == PersonalizationScope.User)
UserScopeRadioButton.Checked = true;
else
SharedScopeRadioButton.Checked = true;
// Based on current user rights to enter Shared scope, set buttons.
if (_manager.Personalization.CanEnterSharedScope)
{
EnterSharedRadioButton.Checked = true;
No_Shared_Scope_Label.Visible = false;
Toggle_Scope_Button.Enabled = true;
}
else
{
EnterSharedRadioButton.Checked = false;
No_Shared_Scope_Label.Visible = true;
Toggle_Scope_Button.Enabled = false;
}
// Based on current user rights to modify personalization state, set buttons.
if (_manager.Personalization.IsModifiable)
{
ModifyStateRadioButton.Checked = true;
Reset_User_Button.Enabled = true;
}
else
{
ModifyStateRadioButton.Checked = false;
Reset_User_Button.Enabled = false;
}
}
// <snippet6>
// Resets all of a user and shared personalization data for the page.
protected void Reset_CurrentState_Button_Click(object src, EventArgs e)
{
// User must be authorized to modify state before a reset can occur.
//When in user scope, all users by default can change their own data.
if (_manager.Personalization.IsModifiable)
{
_manager.Personalization.ResetPersonalizationState();
}
}
// </snippet6>
// <snippet7>
// Allows authorized user to change personalization scope.
protected void Toggle_Scope_Button_Click(object sender, EventArgs e)
{
if (_manager.Personalization.CanEnterSharedScope)
{
_manager.Personalization.ToggleScope();
}
}
// </snippet7>
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="208px"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" Height="214px" >
<asp:Label ID="Label1" runat="server"
Text="Page Scope"
Font-Bold="True"
Font-Size="8pt"
Width="120px" /> <br />
<asp:RadioButton ID="UserScopeRadioButton" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<asp:RadioButton ID="SharedScopeRadioButton" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<br />
<asp:Label BorderStyle="None" Font-Bold="True" Font-Names="Courier New" ID="No_Shared_Scope_Label" Font-Size="Smaller" ForeColor="red"
runat="server" Visible="false" Width="179px">User cannot enter Shared scope</asp:Label>
<br />
<asp:Label ID="Label2" runat="server"
Text="Current User Can:"
Font-Bold="True"
Font-Size="8pt"
Width="165px" />
<br />
<asp:RadioButton ID="ModifyStateRadioButton" runat="server"
Text="Modify State" Width="138px" />
<br />
<asp:RadioButton ID="EnterSharedRadioButton" runat="server"
Text="Enter Shared Scope"
AutoPostBack="true" /> <br />
<br />
<asp:Button ID="Toggle_Scope_Button" OnClick="Toggle_Scope_Button_Click" runat="server"
Text="Change Scope" Width="186px" /><br />
<br />
<asp:Button ID="Reset_User_Button" OnClick="Reset_CurrentState_Button_Click" runat="server"
Text="Reset Current Personalization" Width="185px" /></asp:Panel>
</div>
<%@ control language="VB" %>
<script runat="server">
' Use a field to reference the current WebPartManager.
Private _manager As WebPartManager
Protected Sub Page_Load(ByVal src As Object, ByVal e As EventArgs)
' Get the current Web Parts manager.
_manager = WebPartManager.GetCurrentWebPartManager(Page)
' All radio buttons are disabled; the button settings show what the current state is.
EnterSharedRadioButton.Enabled = False
ModifyStateRadioButton.Enabled = False
' If Web Parts manager is in User scope, set scope button.
If _manager.Personalization.Scope = PersonalizationScope.User Then
UserScopeRadioButton.Checked = True
Else
SharedScopeRadioButton.Checked = True
End If
' Based on current user rights to enter Shared scope, set buttons.
If _manager.Personalization.CanEnterSharedScope Then
EnterSharedRadioButton.Checked = True
No_Shared_Scope_Label.Visible = False
Toggle_Scope_Button.Enabled = True
Else
EnterSharedRadioButton.Checked = False
No_Shared_Scope_Label.Visible = True
Toggle_Scope_Button.Enabled = False
End If
' Based on current user rights to modify personalization state, set buttons.
If _manager.Personalization.IsModifiable Then
ModifyStateRadioButton.Checked = True
Reset_User_Button.Enabled = True
Else
ModifyStateRadioButton.Checked = False
Reset_User_Button.Enabled = False
End If
End Sub 'Page_Load
' <snippet6>
' Resets all of a user and shared personalization data for the page.
Protected Sub Reset_CurrentState_Button_Click(ByVal src As Object, ByVal e As EventArgs)
' User must be authorized to modify state before a reset can occur.
'When in user scope, all users by default can change their own data.
If _manager.Personalization.IsModifiable Then
_manager.Personalization.ResetPersonalizationState()
End If
End Sub 'Reset_CurrentState_Button_Click
' </snippet6>
' <snippet7>
' Allows authorized user to change personalization scope.
Protected Sub Toggle_Scope_Button_Click(ByVal sender As Object, ByVal e As EventArgs)
If _manager.Personalization.CanEnterSharedScope Then
_manager.Personalization.ToggleScope()
End If
End Sub 'Toggle_Scope_Button_Click
' </snippet7>
</script>
<div>
<asp:Panel ID="Panel1" runat="server"
Borderwidth="1"
Width="208px"
BackColor="lightgray"
Font-Names="Verdana, Arial, Sans Serif" Height="214px" >
<asp:Label ID="Label1" runat="server"
Text="Page Scope"
Font-Bold="True"
Font-Size="8pt"
Width="120px" /> <br />
<asp:RadioButton ID="UserScopeRadioButton" runat="server"
Text="User"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<asp:RadioButton ID="SharedScopeRadioButton" runat="server"
Text="Shared"
AutoPostBack="true"
GroupName="Scope"
Enabled="false" />
<br />
<asp:Label BorderStyle="None" Font-Bold="True" Font-Names="Courier New" ID="No_Shared_Scope_Label" Font-Size="Smaller" ForeColor="red"
runat="server" Visible="false" Width="179px">User cannot enter Shared scope</asp:Label>
<br />
<asp:Label ID="Label2" runat="server"
Text="Current User Can:"
Font-Bold="True"
Font-Size="8pt"
Width="165px" />
<br />
<asp:RadioButton ID="ModifyStateRadioButton" runat="server"
Text="Modify State" Width="138px" />
<br />
<asp:RadioButton ID="EnterSharedRadioButton" runat="server"
Text="Enter Shared Scope"
AutoPostBack="true" /> <br />
<br />
<asp:Button ID="Toggle_Scope_Button" OnClick="Toggle_Scope_Button_Click" runat="server"
Text="Change Scope" Width="186px" /><br />
<br />
<asp:Button ID="Reset_User_Button" OnClick="Reset_CurrentState_Button_Click" runat="server"
Text="Reset Current Personalization" Width="185px" /></asp:Panel>
</div>
Açıklamalar
Bu sınıf, alt düzey kişiselleştirme işlemlerini gerçekleştirmek için gereken mantığı uygular. sınıfı üst düzey kişiselleştirme yaşam döngüsünü yönetse WebPartManager de, WebPartPersonalization belirli kişiselleştirme eylemlerini gerçekleştirmek için gereken fiziksel adımları uygulamaktan sorumlu olan sınıftır. Sınıf WebPartPersonalization da kişiselleştirme bilgileri için temel alınan veri deposuyla iletişim kurmak için uygulamasını PersonalizationProvider temel alır.
varsayılan uygulamasını WebPartManagerkullanırsanız, özelliğine başvurarak Personalization kullanabileceğiniz bir sınıf örneği WebPartPersonalization oluşturur. Örneğin, özelliğine InitialScope erişmek için belirtebilirsiniz WebPartManager.Personalization.InitialScope
.
Devralanlara Notlar
sınıfı, WebPartPersonalization bir WebPartManager denetim ve kişiselleştirme altyapısının geri kalanıyla yakından çalışır. Varsayılan kişiselleştirme uygulaması, kişiselleştirme gereksinimlerinizi karşılaması gereken çok sağlam bir alt sistemdir. Çoğu durumda, kişiselleştirmeyi özelleştirmek istiyorsanız, öğesinden PersonalizationProviderdevralan bir sınıf oluşturarak kişiselleştirme sağlayıcısı olarak kullanmak üzere bir veri sağlayıcısı oluşturabilirsiniz.
ve sınıfları tarafından WebPartPersonalization sağlanandan önemli ölçüde farklı bir kişiselleştirme alt sistemi oluşturmak istiyorsanız, kendi özel mantığınızı türeterek WebPartPersonalization ve ekleyerek özel WebPartPersonalization bir uygulama oluşturmanız WebPartManager gerekir. Ardından, içinden türeterek özel WebPartManager bir uygulama oluşturun, kendi özel mantığınızı ekleyin ve özel WebPartPersonalization uygulamanızı döndürmek için yöntemini geçersiz kılınCreatePersonalization().WebPartManager Bir WebPartManager denetim, bir WebPartPersonalization örneğin yoluyla kişiselleştirme altyapısına istekte bulunacağından, WebPartManager denetim uygulamalarla doğrudan etkileşim kurmaz veya başvurular PersonalizationProvider tutmaz.
Oluşturucular
WebPartPersonalization(WebPartManager) |
WebPartPersonalization sınıfının yeni bir örneğini başlatır. |
Alanlar
EnterSharedScopeUserCapability |
WebPartUserCapability Kullanıcının kapsama girme Shared yetkilendirmesinin örneğini temsil eder. |
ModifyStateUserCapability |
WebPartUserCapability Kullanıcının kişiselleştirme durumunu değiştirmek için yetkilendirmesinin örneğini temsil eder. |
Özellikler
CanEnterSharedScope |
Kullanıcının kapsama girme Shared yetkisi olup olmadığını belirten bir değer döndürür. |
Enabled |
İlişkili WebPartManager denetim için kişiselleştirmenin etkinleştirilmesinin istenip istenmediğini belirten bir değer döndürür. |
HasPersonalizationState |
Geçerli sayfa ve kişiselleştirme kapsamının ilişkili kişiselleştirme verilerine sahip olup olmadığını gösteren bir değer döndürür. |
InitialScope |
Varsayılan kişiselleştirme kapsamını alır veya ayarlar. |
IsEnabled |
Kişiselleştirmenin etkinleştirilip etkinleştirilmediğini ve sınıfın bu örneği WebPartPersonalization için kişiselleştirme verilerini başarıyla yükleyip yüklemediğini belirten bir değer alır. |
IsInitialized |
Kişiselleştirmenin etkinleştirilip etkinleştirilmediğini ve sınıfın bu örneği WebPartPersonalization için kişiselleştirme verilerini başarıyla yükleyip yüklemediğini belirten bir değer alır. |
IsModifiable |
Geçerli kullanıcının durum bilgilerini değiştirme yetkisi olup olmadığını gösteren bir değer alır. |
ProviderName |
Kişiselleştirme için sağlayıcı adını alır veya ayarlar. |
Scope |
Üst WebPartManager denetim için geçerli kişiselleştirme kapsamını alır. |
ShouldResetPersonalizationState |
Geçerli sayfanın kişiselleştirme verilerinin sıfırlanıp sıfırlanmamış olduğunu belirten bir değer alır veya ayarlar (örneğin, kişiselleştirme verilerini temel alınan veri deposundan silme isteğinde bulunuldu). |
UserCapabilities |
Geçerli kullanıcıya verilen kullanıcı özellikleri WebPartUserCapability kümesini alır. |
WebPartManager |
Bu WebPartPersonalization örnekle ilişkili geçerli üst WebPartManager denetimin bir örneğini alır. |
Yöntemler
ApplyPersonalizationState() |
Kişiselleştirme verilerini üst WebPartManager denetime uygular. |
ApplyPersonalizationState(WebPart) |
Üst WebPartManager denetim tarafından istendiğinde belirtilen WebPart denetime kişiselleştirme verilerini uygular. |
ChangeScope(PersonalizationScope) |
Geçerli sayfanın PersonalizationScope örneğini belirtilen kapsama değiştirir. |
CopyPersonalizationState(WebPart, WebPart) |
Kişiselleştirme durumunu bir Web Bölümleri denetiminden ayıklar ve ikinci bir Web Bölümleri denetimine uygular. |
EnsureEnabled(Boolean) |
Örneğin başlatmayı WebPartPersonalization tamamladığından veya geçerli kullanıcının kişiselleştirme durumunu değiştirme haklarına sahip olduğundan emin olun. |
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
ExtractPersonalizationState() |
Üst WebPartManager denetimden kişiselleştirme verilerini ayıklar. |
ExtractPersonalizationState(WebPart) |
Üst WebPartManager denetim tarafından istendiğinde web bölümleri denetiminden kişiselleştirme verilerini ayıklar. |
GetAuthorizationFilter(String) |
Varsa, belirtilen Web Bölümleri denetimiyle ilişkili yetkilendirme filtresini alır. |
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) |
Load() |
Kişiselleştirmeyi başlatır. |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ResetPersonalizationState() |
Temel alınan veri deposundaki geçerli sayfa, kapsam ve kullanıcı için kişiselleştirme verilerini sıfırlar. |
Save() |
Geçerli sayfa, kapsam ve kullanıcı için kişiselleştirme verilerini temel alınan veri deposuna kaydeder. |
SetDirty() |
Üst WebPartManager denetimi değişen kişiselleştirme verilerine sahip olarak işaretler ("kirlidir"). |
SetDirty(WebPart) |
Belirtilen Web Bölümleri denetimini değiştirilmiş kişiselleştirme verilerine sahip olarak işaretler ("kirlidir"). |
ToggleScope() |
Geçerli sayfanın kişiselleştirme kapsamını UserShared ile veya olan SharedUserile değiştirir. |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |