CatalogZone イベント
パブリック イベント
名前 | 説明 | |
---|---|---|
DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) | |
Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) | |
Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) | |
Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) | |
PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) | |
Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |
関連項目
CatalogZone クラスSystem.Web.UI.WebControls.WebParts 名前空間
CatalogPart クラス
その他の技術情報
Web パーツ コントロール セットの概要Web パーツのパーソナル化の概要
ASP.NET Web パーツ ページ
CatalogZone クラス
アセンブリ: System.Web (system.web.dll 内)
構文
解説
Web パーツ コントロール セット内で、ゾーンは、Web パーツ コントロールを格納する Web ページ上の領域です。Web パーツ ゾーンは、ゾーン コントロールによって作成されます。これは、他のコントロールを格納するように設計された CompositeControl の一種です。ゾーンの主要な機能は、格納しているコントロールをレイアウトすること、およびそのコントロールに共通のユーザー インターフェイス (UI) を提供することです。ゾーンとその Web パーツ アプリケーションでの使用については、WebZone 基本クラスのトピック、および「Web パーツ コントロール セットの概要」を参照してください。
Web パーツ コントロールの主要機能は、エンド ユーザーが独自の設定に従って Web ページを変更 (またはパーソナル化) し、そのパーソナル化設定を今後のブラウザ セッションのために保存できるようにすることです。Web パーツ ページの変更には、WebPart コントロールまたはその他のサーバー コントロールを Web パーツ ページに追加することも含まれます。CatalogZone コントロールは、ユーザーがページに追加できるコントロールのリストまたはカタログを提供します。
CatalogZone コントロールは、Web パーツ コントロール セットの基本的なコントロールの 1 つです。これは、CatalogZoneBase クラスから派生し、その動作のほとんどはそのクラスから継承されます。CatalogZone クラスは、基本的に、ITemplate インターフェイスの実装であるゾーン テンプレートを基本クラスに追加します。ゾーン テンプレートを使用すると、開発者は、ページの永続形式で宣言することによって CatalogPart コントロールをゾーンに追加できます。
重要 : |
---|
CatalogZone ゾーンには CatalogPart コントロールだけを含めることができます。逆にいうと、CatalogPart コントロールは、CatalogZoneBase クラスから派生する、CatalogZone などのゾーンだけに存在できます。 |
CatalogZone コントロールは、ユーザーが Web ページをカタログ表示モード (CatalogDisplayMode) に切り替えたときにだけ表示されます。カタログには、複数の型の CatalogPart コントロールを格納できます。各 CatalogPart コントロールは、ユーザーがページに追加できるサーバー コントロールを含む一種のコンテナです。CatalogPart コントロールは、それに格納するサーバー コントロールがどこから追加されたかによって異なります。Web パーツ コントロール セットで提供される CatalogPart コントロールと、それが格納するサーバー コントロールの種類を各コントロールについてまとめた表を次に示します。
PageCatalogPart | ページで終了したコントロールへの参照を保持します。ユーザーは、これらのコントロールを再度開く (ページに戻す) ことができます。 |
DeclarativeCatalogPart | Web ページのマークアップ内の Web パーツ カタログで宣言されているコントロールへの参照を含みます。これらのコントロールを、ユーザーが Web ページに追加できます。 |
ImportCatalogPart | コントロールを Web ページに追加できるように、ユーザーがコントロールの定義ファイル (.WebPart 拡張子を持つ、指定した形式の XML ファイル。ステータス情報を格納する) をカタログにアップロードするための UI を提供します。 |
CatalogZone クラスはゾーン テンプレートだけをその基本クラスの動作に追加するので、メンバはほとんどありません。CatalogZone コンストラクタは、既定のコンストラクタです。これを使用して、CatalogZone クラスの新しいインスタンスを初期化できます。ZoneTemplate プロパティは、ゾーンのコントロールを含む ITemplate オブジェクトへの参照を取得または設定します。CreateCatalogParts メソッドは重要です。これは、基本メソッドをオーバーライドして、ゾーン テンプレート内に含まれるすべての CatalogPart コントロールのコレクションを作成します。
メモ |
---|
CatalogZone の UI のボタンが正常に動作するためには、クライアント側のスクリプトが必要です。ブラウザでスクリプトが無効になっている場合は、ユーザーは CatalogZone の UI を通じてアクションを実行できません。 |
ユーザー補助
このコントロールに既定でレンダリングされるマークアップは、Web Content Accessibility Guidelines (WCAG) 1.0 の優先度 1 ガイドラインなどのユーザー補助に関する標準に適合しない可能性があります。このコントロールのユーザー補助サポートの詳細については、「ASP.NET コントロールとユーザー補助」を参照してください。
CatalogZone コントロールを、宣言で使用する方法およびプログラムで使用する方法を示すコード例を次に示します。コード例は、次の 4 つの部分から成ります。
-
Web ページ上の表示モードを変更することのできるユーザー コントロール。
-
カスタム CatalogZone コントロールのソース コード、およびカタログによってインポートされ、Web ページに追加されるカスタム WebPart コントロールがあるファイル。
-
ユーザー コントロールおよびカスタム CatalogZone コントロールを宣言している Web ページ。
コード例の最初の部分は、Web ページ上の表示モードをユーザーが変更できるようにするユーザー コントロールです。表示モードの詳細、およびこのコントロールのソース コードの説明については、「チュートリアル : Web パーツ ページでの表示モードの変更」を参照してください。
<%@ 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" /> <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="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" /> <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>
コード例の 2 番目の部分には、カスタムの CatalogZone コントロールおよび WebPart コントロールのコードが含まれています。CatalogZone コントロールのコードは、CatalogZone クラスから継承し、コンストラクタで既定のプロパティ値をいくつか設定してプロパティをカスタマイズする方法を示しています。また、このソース コードは、TextDisplayWebPart というカスタム WebPart クラスを作成する方法も示しています。これは、このコード例の一部としてインポートする .WebPart 記述ファイルに関連付けられたコントロールです。Web ページ上の ImportCatalogPart コントロールを使用して記述ファイルをインポートすると、記述ファイルの指定に従って完全に事前設定した TextDisplayWebPart コントロールをページに追加できます。
コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。このコード例では、動的コンパイルを使用します。したがって、この方法で例を実行する場合は、ソース コード ファイルに名前を付けて保存し、これを Web アプリケーションのルート ディレクトリの App_Code サブフォルダに追加します。両方のコンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
Imports System 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 ' Create a custom CatalogZone control by setting some ' properties in the constructor. <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class MyCatalogZone Inherits CatalogZone Public Sub New() Me.HeaderText = "My Company Catalog" Me.HeaderCloseVerb.Text = "Close Catalog" Me.CloseVerb.Text = "Close Catalog" End Sub End Class ' Create a custom WebPart to add to a WebPartZone. <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
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 { // Create a customized CatalogZone control by setting // some properties in the constructor. [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class MyCatalogZone : CatalogZone { public MyCatalogZone() { this.HeaderText = "My Company Catalog"; this.HeaderCloseVerb.Text = "Close Catalog"; this.CloseVerb.Text = "Close Catalog"; } } // Create a custom WebPart control to add to a WebPartZone. [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 (input.Text != String.Empty) { _contentText = input.Text + @"<br />"; input.Text = String.Empty; DisplayContent.Text = this.ContentText; } } } }
コード例の 3 番目の部分は、コントロールを保持する Web ページです。これには、ユーザー コントロール用の Register ディレクティブ、およびカスタム コントロールを含むソース ファイル用の別のディレクティブが含まれます。2 番目のディレクティブでは、アセンブリに名前を付けていないことに注意してください。この例ではアセンブリを使用せず、App_Code サブフォルダに配置したソース コードによる動的コンパイルを使用します。Web ページでは WebPartZone コントロールを宣言し、その子の <zonetemplate> 要素内で BulletedList コントロールを宣言します。これは標準の ASP.NET コントロールですが、実行時には完全な Web パーツ機能を持つことになります。WebPartManager コントロールが WebPartZone に配置された任意のサーバー コントロールを GenericWebPart オブジェクトでラップして、他のサーバー コントロールが Web パーツ アプリケーションに参加できるようにするためです。また、このゾーンでは、TextDisplayWebPart というカスタム WebPart コントロールも宣言されます。このコントロールには、ExportMode="All" という属性が宣言されていることに注意してください。これにより、コントロールのプロパティ値を含んだ .WebPart 記述ファイルをエクスポートできます。このファイルを別のユーザーがインポートして、設定済みのコントロールを他の Web ページに追加できます。
メモ |
---|
Web パーツ アプリケーションのユーザーが WebPart コントロールの記述ファイルをエクスポートできるようにするには、Web.config ファイルで <webParts> 要素 (これは <system.web> 要素の子です) に enableExport="true" 属性を追加することで、Web アプリケーションのエクスポート機能を有効にすることも必要です。エクスポートは既定では無効になっています。したがって、アプリケーションのエクスポートをまだ有効にしていない場合は、ここで Web.config ファイルを編集して有効にしてください。 |
また、Web ページではカスタム CatalogZone コントロール、およびその中で、ImportCatalogPart コントロールを含んだ <zonetemplate> 要素も宣言します。ユーザーは、カスタム WebPart コントロールの .WebPart 記述ファイルをインポートするために、実行時にこのコントロールを使用します。
<%@ Page Language="vb" %> <%@ register TagPrefix="uc1" TagName="DisplayModeMenuVB" Src="DisplayModeMenuVB.ascx" %> <%@ Register TagPrefix="aspSample" 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>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <uc1:DisplayModeMenuVB ID="DisplayModeMenu1" runat="server" /> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:BulletedList ID="BulletedList1" Runat="server" DisplayMode="HyperLink" Title="Favorite Links" > <asp:ListItem Value="http://msdn.microsoft.com"> MSDN </asp:ListItem> <asp:ListItem Value="http://www.asp.net"> ASP.NET </asp:ListItem> <asp:ListItem Value="http://www.msn.com"> MSN </asp:ListItem> </asp:BulletedList> <aspsample:textdisplaywebpart id="wp1" runat="server" Title="My Text Display WebPart" /> </ZoneTemplate> </asp:WebPartZone> <aspSample:MyCatalogZone ID="CatalogZone1" runat="server"> <ZoneTemplate> <asp:ImportCatalogPart id="ImportCatalogPart1" runat="server" /> </ZoneTemplate> </aspSample:MyCatalogZone> </form> </body> </html>
<%@ Page Language="C#" %> <%@ register TagPrefix="uc1" TagName="DisplayModeMenuCS" Src="DisplayModeMenuCS.ascx" %> <%@ Register TagPrefix="aspSample" 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>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <asp:WebPartManager ID="WebPartManager1" runat="server" /> <uc1:DisplayModeMenuCS ID="DisplayModeMenu1" runat="server" /> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <asp:BulletedList ID="BulletedList1" Runat="server" DisplayMode="HyperLink" Title="Favorite Links" > <asp:ListItem Value="http://msdn.microsoft.com"> MSDN </asp:ListItem> <asp:ListItem Value="http://www.asp.net"> ASP.NET </asp:ListItem> <asp:ListItem Value="http://www.msn.com"> MSN </asp:ListItem> </asp:BulletedList> <aspsample:textdisplaywebpart id="wp1" runat="server" Title="My Text Display WebPart" /> </ZoneTemplate> </asp:WebPartZone> <aspSample:MyCatalogZone ID="CatalogZone1" runat="server"> <ZoneTemplate> <asp:ImportCatalogPart id="ImportCatalogPart1" runat="server" /> </ZoneTemplate> </aspSample:MyCatalogZone> </form> </body> </html>
ここでコード例を実行してください。ブラウザに Web ページを読み込みます。最初の手順は、TextDisplayWebPart コントロールの .WebPart 記述ファイルのエクスポートです。カスタム コントロールの動詞メニュー (タイトル バーの下向きの矢印で表されます) をクリックし、[エクスポート] をクリックします。指示に従って、コントロールの記述ファイルを保存します。エディタで .WebPart 記述ファイルを開き、タイトル プロパティのテキストの値を編集します。属性 name="Title" を持つ <property> 要素を探して、<property> の開始タグと終了タグの間に含まれるタイトル テキストを編集します。ここで Web ページを閉じ、エディタでページ ソースを編集します。<aspSample:TextDisplayWebPart> コントロールの宣言要素を削除し、ファイルを保存して閉じます。
ブラウザに再度 Web ページを読み込みます。TextDisplayWebPart コントロールは削除したので表示されません。[Display Mode] ドロップダウン リスト コントロールを使用して [カタログ] を選択し、ページをカタログ モードに切り替えます。カスタム CatalogZone コントロールが、ImportCatalogPart コントロールと一緒に表示されることに注意してください。[Browse] ボタンをクリックして、TextDisplayWebPart コントロールについてエクスポートを行った .WebPart 記述ファイルを見つけます。[アップロード] をクリックし、インポートされるコントロールの横のチェック ボックスをオンにします。次に、[追加] をクリックしてそれをページに追加します。[Close Catalog] をクリックして、ページを標準のブラウズ モードに戻します。インポートされたコントロールがページに表示されるようになり、コントロールのタイトル バーに表示されるタイトルは、.WebPart 記述ファイルに追加したタイトル テキストになります。
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.CompositeControl
System.Web.UI.WebControls.WebParts.WebZone
System.Web.UI.WebControls.WebParts.ToolZone
System.Web.UI.WebControls.WebParts.CatalogZoneBase
System.Web.UI.WebControls.WebParts.CatalogZone
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
CatalogZone コンストラクタ
アセンブリ: System.Web (system.web.dll 内)
構文
解説
CatalogZone コントロールは、ゾーン テンプレートを実装するので、通常は宣言によって使用されます。CatalogZone コンストラクタを使用してクラスの新しいインスタンスを作成する必要はほとんどありません。しかし、CatalogZone クラスから継承してカスタム ゾーンを作成する場合は、コンストラクタを使用してそのプロパティ値の一部を初期化して外観をカスタマイズできます。
カスタム CatalogZone コントロールで CatalogZone コンストラクタをプログラムによって使用するコード例を次に示します。コンストラクタは、コントロールの一部の既定のプロパティ値の初期化に使用されます。先頭近くで宣言されたコンストラクタを含むカスタム CatalogZone クラスのコード例を次に示します。例の設定および実行に必要なコード全体と指示については、CatalogZone クラスの概要で「例」を参照してください。
Imports System 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 ' Create a custom CatalogZone control by setting some ' properties in the constructor. <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class MyCatalogZone Inherits CatalogZone Public Sub New() Me.HeaderText = "My Company Catalog" Me.HeaderCloseVerb.Text = "Close Catalog" Me.CloseVerb.Text = "Close Catalog" End Sub End Class ' Create a custom WebPart to add to a WebPartZone. <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
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 { // Create a customized CatalogZone control by setting // some properties in the constructor. [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class MyCatalogZone : CatalogZone { public MyCatalogZone() { this.HeaderText = "My Company Catalog"; this.HeaderCloseVerb.Text = "Close Catalog"; this.CloseVerb.Text = "Close Catalog"; } } // Create a custom WebPart control to add to a WebPartZone. [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 (input.Text != String.Empty) { _contentText = input.Text + @"<br />"; input.Text = String.Empty; DisplayContent.Text = this.ContentText; } } } }
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
CatalogZone プロパティ
パブリック プロパティ
関連項目
CatalogZone クラスSystem.Web.UI.WebControls.WebParts 名前空間
CatalogPart クラス
その他の技術情報
Web パーツ コントロール セットの概要Web パーツのパーソナル化の概要
ASP.NET Web パーツ ページ
CatalogZone メソッド
パブリック メソッド
関連項目
CatalogZone クラスSystem.Web.UI.WebControls.WebParts 名前空間
CatalogPart クラス
その他の技術情報
Web パーツ コントロール セットの概要Web パーツのパーソナル化の概要
ASP.NET Web パーツ ページ
CatalogZone メンバ
Web ページで CatalogPart コントロールをホストするための Web パーツ コントロール セットの主コントロールとして機能します。
CatalogZone データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック プロパティ
名前 | 説明 | |
---|---|---|
DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) | |
Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) | |
Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) | |
Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) | |
PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) | |
Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |
関連項目
CatalogZone クラスSystem.Web.UI.WebControls.WebParts 名前空間
CatalogPart クラス
その他の技術情報
Web パーツ コントロール セットの概要Web パーツのパーソナル化の概要
ASP.NET Web パーツ ページ
- CatalogZoneのページへのリンク