IPersonalizable インターフェイスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > IPersonalizable インターフェイスの意味・解説 

IPersonalizable インターフェイス

メモ : このインターフェイスは、.NET Framework version 2.0新しく追加されたものです。

パーソナル化状態の適用抽出を行うための追加管理機能定義します

名前空間: System.Web.UI.WebControls.WebParts
アセンブリ: System.Web (system.web.dll 内)
構文構文

Dim instance As IPersonalizable
public interface IPersonalizable
public interface class IPersonalizable
public interface IPersonalizable
public interface IPersonalizable
解説解説
使用例使用例

IPersonalizable インターフェイス使用する方法次のコード例示します。この例は、UrlListWebPart という名前の Web パーツ コントロール参照する .aspx ページ構成されています。.aspx ファイルコード例次に示します

<%@ Page Language="VB"  %>
<%@ Register TagPrefix="dict" 
    namespace="Samples.AspNet.VB.Controls"
 %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >
<head runat="server">
    <title>IPersonalizable</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager ID="mgr" runat="server"
 />
    <div>
    <asp:WebPartZone ID="WebPartZone1" runat="server">
      <ZoneTemplate>
        <dict:urllistwebpart id="listwp1" runat="server"
          title="URL List WebPart" />
      </ZoneTemplate>
    </asp:WebPartZone>
    </div>
    </form>
</body>
</html>
<%@ Page Language="C#"  %>
<%@ Register TagPrefix="dict" 
    namespace="Samples.AspNet.CS.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html  >
<head runat="server">
    <title>IPersonalizable</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:WebPartManager ID="mgr" runat="server" />
    <div>
    <asp:WebPartZone ID="WebPartZone1" runat="server">
      <ZoneTemplate>
        <dict:urllistwebpart id="listwp1" runat="server"
          title="URL List WebPart" />
      </ZoneTemplate>
    </asp:WebPartZone>
    </div>
    </form>
</body>
</html>

次のコードは、カスタム WebPart コントロールソースです。このファイルは、App_Code ディレクトリ配置する必要があります

Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Diagnostics
Imports System.Drawing
Imports System.Web
Imports System.Web.UI
Imports System.Security.Permissions
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 UrlListWebPart
      Inherits WebPart
      Implements IPersonalizable
      Private _sharedUrls As ArrayList
      Private _userUrls As ArrayList
      Private _listDirty As Boolean

      Private _nameTextBox As TextBox
      Private _urlTextBox As TextBox
      Private _addButton As Button
      Private _list As BulletedList


      Protected Overrides Sub
 CreateChildControls()
          Dim nameLabel As New
 Label()
          Dim urlLabel As New
 Label()
          Dim breakLiteral1 As New
 LiteralControl("<br />")
          Dim breakLiteral2 As New
 LiteralControl("<br />")
          Dim breakLiteral3 As New
 LiteralControl("<br />")

          _nameTextBox = New TextBox()
          _urlTextBox = New TextBox()
          _addButton = New Button()
          _list = New BulletedList()

          nameLabel.Text = "Name: "
          urlLabel.Text = "URL: "
          _nameTextBox.ID = "nameTextBox"
          _urlTextBox.ID = "urlTextBox"
          _addButton.Text = "Add"
          _addButton.ID = "addButton"
          AddHandler _addButton.Click, AddressOf
 Me.OnClickAddButton
          _list.DisplayMode = BulletedListDisplayMode.HyperLink
          _list.ID = "list"

          Controls.Add(nameLabel)
          Controls.Add(_nameTextBox)
          Controls.Add(breakLiteral1)

          Controls.Add(urlLabel)
          Controls.Add(_urlTextBox)
          Controls.Add(breakLiteral2)

          Controls.Add(_addButton)
          Controls.Add(breakLiteral3)

          Controls.Add(_list)

      End Sub 'CreateChildControls


      Private Sub OnClickAddButton(ByVal
 sender As Object, ByVal
 e As EventArgs)
          Dim name As String
 = _nameTextBox.Text.Trim()
          Dim url As String
 = _urlTextBox.Text.Trim()

          Dim p As New Pair(name,
 url)
          If WebPartManager.Personalization.Scope = PersonalizationScope.Shared
 Then
              If _sharedUrls Is Nothing
 Then
                  _sharedUrls = New ArrayList()
              End If
              _sharedUrls.Add(p)
          Else
              If _userUrls Is Nothing
 Then
                  _userUrls = New ArrayList()
              End If
              _userUrls.Add(p)
          End If

          OnUrlAdded()

      End Sub 'OnClickAddButton


      Protected Overridable Sub
 OnUrlAdded()
          _listDirty = True
          ChildControlsCreated = False

      End Sub 'OnUrlAdded


      Protected Overrides Sub
 RenderContents(ByVal writer As HtmlTextWriter)
          If Not (_sharedUrls Is
 Nothing) Then
              Dim p As Pair
              For Each p In
 _sharedUrls
                  _list.Items.Add(New ListItem(CStr(p.First),
 CStr(p.Second)))
              Next p
          End If
          If Not (_userUrls Is
 Nothing) Then
              Dim p As Pair
              For Each p In
 _userUrls
                  _list.Items.Add(New ListItem(CStr(p.First),
 CStr(p.Second)))
              Next p
          End If

          MyBase.RenderContents(writer)

      End Sub 'RenderContents


      Public Overridable ReadOnly
 Property IsDirty() As Boolean
 _
        Implements IPersonalizable.IsDirty
          Get
              Return _listDirty
          End Get
      End Property

      Public Overridable Shadows
 Sub Load(ByVal state As
 PersonalizationDictionary) _
        Implements IPersonalizable.Load
          If Not (state Is
 Nothing) Then
              Dim sharedUrlsEntry As PersonalizationEntry
 = state("sharedUrls")
              If Not (sharedUrlsEntry Is
 Nothing) Then
                  _sharedUrls = CType(sharedUrlsEntry.Value, ArrayList)
              End If

              Dim userUrlsEntry As PersonalizationEntry
 = state("userUrls")
              If Not (userUrlsEntry Is
 Nothing) Then
                  _userUrls = CType(userUrlsEntry.Value, ArrayList)
              End If
          End If

      End Sub 'Load

      Public Overridable Sub
 Save(ByVal state As PersonalizationDictionary)
 _
        Implements IPersonalizable.Save
          If Not (_sharedUrls Is
 Nothing) AndAlso _sharedUrls.Count <>
 0 Then
              state("sharedUrls") = New
 PersonalizationEntry(_sharedUrls, PersonalizationScope.Shared)
          End If
          If Not (_userUrls Is
 Nothing) AndAlso _userUrls.Count <>
 0 Then
              state("userUrls") = New
 PersonalizationEntry(_userUrls, PersonalizationScope.User)
          End If

      End Sub
  End Class


End Namespace
namespace Samples.AspNet.CS.Controls
{

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Drawing;
    using System.Web;
    using System.Web.UI;
    using System.Security.Permissions;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;

    [AspNetHostingPermission(SecurityAction.Demand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand,
      Level = AspNetHostingPermissionLevel.Minimal)]
    public class UrlListWebPart : WebPart,
 IPersonalizable
    {
        private ArrayList _sharedUrls;
        private ArrayList _userUrls;
        private bool _listDirty;

        private TextBox _nameTextBox;
        private TextBox _urlTextBox;
        private Button _addButton;
        private BulletedList _list;

        protected override void CreateChildControls()
        {
            Label nameLabel = new Label();
            Label urlLabel = new Label();
            LiteralControl breakLiteral1 = new LiteralControl("<br
 />");
            LiteralControl breakLiteral2 = new LiteralControl("<br
 />");
            LiteralControl breakLiteral3 = new LiteralControl("<br
 />");

            _nameTextBox = new TextBox();
            _urlTextBox = new TextBox();
            _addButton = new Button();
            _list = new BulletedList();

            nameLabel.Text = "Name: ";
            urlLabel.Text = "URL: ";
            _nameTextBox.ID = "nameTextBox";
            _urlTextBox.ID = "urlTextBox";
            _addButton.Text = "Add";
            _addButton.ID = "addButton";
            _addButton.Click += new EventHandler(this.OnClickAddButton);
            _list.DisplayMode = BulletedListDisplayMode.HyperLink;
            _list.ID = "list";

            Controls.Add(nameLabel);
            Controls.Add(_nameTextBox);
            Controls.Add(breakLiteral1);

            Controls.Add(urlLabel);
            Controls.Add(_urlTextBox);
            Controls.Add(breakLiteral2);

            Controls.Add(_addButton);
            Controls.Add(breakLiteral3);

            Controls.Add(_list);
        }

        private void OnClickAddButton(object
 sender, EventArgs e)
        {
            string name = _nameTextBox.Text.Trim();
            string url = _urlTextBox.Text.Trim();

            Pair p = new Pair(name, url);
            if (WebPartManager.Personalization.Scope == PersonalizationScope.Shared)
            {
                if (_sharedUrls == null)
                {
                    _sharedUrls = new ArrayList();
                }
                _sharedUrls.Add(p);
            }
            else
            {
                if (_userUrls == null)
                {
                    _userUrls = new ArrayList();
                }
                _userUrls.Add(p);
            }

            OnUrlAdded();
        }

        protected virtual void OnUrlAdded()
        {
            _listDirty = true;
            ChildControlsCreated = false;
        }

        protected override void RenderContents(HtmlTextWriter
 writer)
        {
            if (_sharedUrls != null)
            {
                foreach (Pair p in _sharedUrls)
                {
                    _list.Items.Add(new ListItem((string)p.First,
 (string)p.Second));
                }
            }
            if (_userUrls != null)
            {
                foreach (Pair p in _userUrls)
                {
                    _list.Items.Add(new ListItem((string)p.First,
 (string)p.Second));
                }
            }

            base.RenderContents(writer);
        }

        public virtual bool IsDirty
        {
            get
            {
                return _listDirty;
            }
        }
        public new virtual void
 Load(PersonalizationDictionary state)
        {
            if (state != null)
            {
                PersonalizationEntry sharedUrlsEntry = state["sharedUrls"];
                if (sharedUrlsEntry != null)
                {
                    _sharedUrls = (ArrayList)sharedUrlsEntry.Value;
                }

                PersonalizationEntry userUrlsEntry = state["userUrls"];
                if (userUrlsEntry != null)
                {
                    _userUrls = (ArrayList)userUrlsEntry.Value;
                }
            }
        }

        public virtual void Save(PersonalizationDictionary
 state)
        {
            if ((_sharedUrls != null) &&
 (_sharedUrls.Count != 0))
            {
                state["sharedUrls"] = new PersonalizationEntry(_sharedUrls,
 PersonalizationScope.Shared);
            }
            if ((_userUrls != null) &&
 (_userUrls.Count != 0))
            {
                state["userUrls"] = new PersonalizationEntry(_userUrls,
 PersonalizationScope.User);
            }
        }
    }
}

ブラウザページ読み込みます。URL を表す名前を入力しhttp:// で始まる実際URL追加し、[追加] ボタンクリックして URL追加します

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
IPersonalizable メンバ
System.Web.UI.WebControls.WebParts 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からIPersonalizable インターフェイスを検索した結果を表示しています。
Weblioに収録されているすべての辞書からIPersonalizable インターフェイスを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からIPersonalizable インターフェイス を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「IPersonalizable インターフェイス」の関連用語

IPersonalizable インターフェイスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



IPersonalizable インターフェイスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS