WebPartManager.ConnectDisplayMode フィールド
アセンブリ: System.Web (system.web.dll 内)


ConnectDisplayMode フィールドは、WebPartManager コントロールによって作成され格納された、カスタム WebPartDisplayMode オブジェクトを参照します。これは静的オブジェクトであるため、このコントロールのインスタンスがなくても、WebPartManager クラスを通じて直接このオブジェクトを参照できます。
ユーザーが Web ページ上の WebPart コントロール間の接続を管理する場合、そのページに ConnectionsZone ゾーンが宣言されていると、ページを ConnectDisplayMode モードに切り替えることができます。接続表示モードには、コントロールを接続または接続解除する機能、既存の接続の詳細を編集する機能など、接続を管理するための特殊な UI が表示されます。
Web パーツ コントロール セットに用意されている UI を使用して接続を管理する機能をユーザーに提供する場合は、ページのマークアップに <asp:connectionszone> 要素を宣言する必要があります。WebZone ゾーンの他の種類の要素と異なり、この要素内に他のタグを追加する必要はありません。単にその要素自体を宣言するだけです。

ConnectDisplayMode モードの使用方法を次のコード例に示します。
このコード例の最初の部分は、1 つのインターフェイスおよび接続できるようにデザインされた 2 つのカスタム WebPart コントロールを含むソース ファイルです。コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。このコード例は、動的コンパイルのアプローチを使用します。コンパイル方法を示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
Imports System Imports System.Web Imports System.Web.Security Imports System.Security.Permissions 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 Interface IZipCode Property ZipCode() As String End Interface <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class ZipCodeWebPart Inherits WebPart Implements IZipCode Private zipCodeText As String = String.Empty Private input As TextBox Private send As Button Public Sub New() End Sub ' Make the implemented property personalizable to save ' the Zip Code between browser sessions. <Personalizable()> _ Public Property ZipCode() As String _ Implements IZipCode.ZipCode Get Return zipCodeText End Get Set(ByVal value As String) zipCodeText = value End Set End Property ' This is the callback method that returns the provider. <ConnectionProvider("Zip Code", "ZipCodeProvider")> _ Public Function ProvideIZipCode() As IZipCode Return Me End Function Protected Overrides Sub CreateChildControls() Controls.Clear() input = New TextBox() Me.Controls.Add(input) send = New Button() send.Text = "Enter 5-digit Zip Code" AddHandler send.Click, AddressOf Me.submit_Click Me.Controls.Add(send) End Sub Private Sub submit_Click(ByVal sender As Object, _ ByVal e As EventArgs) If input.Text <> String.Empty Then zipCodeText = Page.Server.HtmlEncode(input.Text) input.Text = String.Empty End If End Sub End Class <AspNetHostingPermission(SecurityAction.Demand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ <AspNetHostingPermission(SecurityAction.InheritanceDemand, _ Level:=AspNetHostingPermissionLevel.Minimal)> _ Public Class WeatherWebPart Inherits WebPart Private _provider As IZipCode Private _zipSearch As String Private DisplayContent As Label ' This method is identified by the ConnectionConsumer ' attribute, and is the mechanism for connecting with ' the provider. <ConnectionConsumer("Zip Code", "ZipCodeConsumer")> _ Public Sub GetIZipCode(ByVal Provider As IZipCode) _provider = Provider End Sub Protected Overrides Sub OnPreRender(ByVal e As EventArgs) EnsureChildControls() If Not (Me._provider Is Nothing) Then _zipSearch = _provider.ZipCode.Trim() DisplayContent.Text = "My Zip Code is: " + _zipSearch End If End Sub 'OnPreRender Protected Overrides Sub CreateChildControls() Controls.Clear() DisplayContent = New Label() Me.Controls.Add(DisplayContent) End Sub End Class End Namespace
namespace Samples.AspNet.CS.Controls { using System; using System.Web; using System.Web.Security; using System.Security.Permissions; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public interface IZipCode { string ZipCode { get; set;} } [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class ZipCodeWebPart : WebPart, IZipCode { string zipCodeText = String.Empty; TextBox input; Button send; public ZipCodeWebPart() { } // Make the implemented property personalizable to save // the Zip Code between browser sessions. [Personalizable()] public virtual string ZipCode { get { return zipCodeText; } set { zipCodeText = value; } } // This is the callback method that returns the provider. [ConnectionProvider("Zip Code", "ZipCodeProvider")] public IZipCode ProvideIZipCode() { return this; } protected override void CreateChildControls() { Controls.Clear(); input = new TextBox(); this.Controls.Add(input); send = new Button(); send.Text = "Enter 5-digit Zip Code"; send.Click += new EventHandler(this.submit_Click); this.Controls.Add(send); } private void submit_Click(object sender, EventArgs e) { if (input.Text != String.Empty) { zipCodeText = Page.Server.HtmlEncode(input.Text); input.Text = String.Empty; } } } [AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)] public class WeatherWebPart : WebPart { private IZipCode _provider; string _zipSearch; Label DisplayContent; // This method is identified by the ConnectionConsumer // attribute, and is the mechanism for connecting with // the provider. [ConnectionConsumer("Zip Code", "ZipCodeConsumer")] public void GetIZipCode(IZipCode Provider) { _provider = Provider; } protected override void OnPreRender(EventArgs e) { EnsureChildControls(); if (this._provider != null) { _zipSearch = _provider.ZipCode.Trim(); DisplayContent.Text = "My Zip Code is: " + _zipSearch; } } protected override void CreateChildControls() { Controls.Clear(); DisplayContent = new Label(); this.Controls.Add(DisplayContent); } } }
コード例の 2 番目の部分は、カスタム コントロールをホストする Web ページです。ページ上のサーバーの <script> タグ内には、そのページ上で使用できる表示モードのドロップダウン リストを生成するいくつかのメソッドがあります。ユーザーはドロップダウン リストから表示モードを選択して、ページの表示モードを変更できます。ページのマークアップに <asp:connectionszone> 要素が宣言されているため、接続表示モードを使用できます。この要素には、他の子要素は含まれていません。この要素は、ユーザー用の接続管理 UI を有効にするためにだけ存在します。
この例では、ConnectDisplayMode モードが 2 つの場所で表示されます。1 つ目は、Page_Init メソッドで、コードは SupportedDisplayModes プロパティで参照されるコレクションをループ処理し、接続表示モードを表示モードのドロップダウン リストに追加します。2 つ目は、Page_PreRender メソッドがページ上の現在の表示モードをチェックし、現在のモードが ConnectDisplayMode の場合、Label コントロールにメッセージを表示します。
<%@ Page Language="vb" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" %> <script runat="server"> Protected Sub Page_Init(ByVal sender As Object, _ ByVal e As EventArgs) Dim mode As WebPartDisplayMode For Each mode In mgr.SupportedDisplayModes Dim modeName As String = mode.Name If mode.IsEnabled(mgr) Then Dim item As ListItem = New ListItem(modeName, modeName) DisplayModeDropdown.Items.Add(item) End If Next End Sub Protected Sub DisplayModeDropdown_SelectedIndexChanged(ByVal _ sender As Object, ByVal e As EventArgs) Dim selectedMode As String = _ DisplayModeDropdown.SelectedValue Dim mode As WebPartDisplayMode = _ mgr.SupportedDisplayModes(selectedMode) If mode IsNot Nothing Then mgr.DisplayMode = mode End If End Sub Protected Sub Page_PreRender(ByVal sender As Object, _ ByVal e As System.EventArgs) If mgr.DisplayMode.Equals(WebPartManager.ConnectDisplayMode) Then Label1.Visible = True Else Label1.Visible = False End If End Sub </script> <html > <head id="Head1" runat="server"> </head> <body> <form id="form1" runat="server"> <div> <asp:WebPartManager ID="mgr" runat="server" /> <asp:Label ID="Label1" runat="server" Text="Currently in Connect Display Mode" Font-Bold="true" Font-Size="125%" /> <br /> <asp:DropDownList ID="DisplayModeDropdown" runat="server" AutoPostBack="true" Width="120" OnSelectedIndexChanged= "DisplayModeDropdown_SelectedIndexChanged"> </asp:DropDownList> <hr /> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <aspSample:ZipCodeWebPart ID="zip1" runat="server" Title="Zip Code Provider" /> <aspSample:WeatherWebPart ID="weather1" runat="server" Title="Zip Code Consumer" /> </ZoneTemplate> </asp:WebPartZone> <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" /> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" %> <script runat="server"> protected void Page_Init(object sender, EventArgs e) { foreach (WebPartDisplayMode mode in mgr.SupportedDisplayModes) { string modeName = mode.Name; if (mode.IsEnabled(mgr)) { ListItem item = new ListItem(modeName, modeName); DisplayModeDropdown.Items.Add(item); } } } protected void DisplayModeDropdown_SelectedIndexChanged(object sender, EventArgs e) { String selectedMode = DisplayModeDropdown.SelectedValue; WebPartDisplayMode mode = mgr.SupportedDisplayModes[selectedMode]; if (mode != null) mgr.DisplayMode = mode; } protected void Page_PreRender(object sender, EventArgs e) { if (mgr.DisplayMode == WebPartManager.ConnectDisplayMode) Label1.Visible = true; else Label1.Visible = false; } </script> <html > <head runat="server"> </head> <body> <form id="form1" runat="server"> <div> <asp:WebPartManager ID="mgr" runat="server" /> <asp:Label ID="Label1" runat="server" Text="Currently in Connect Display Mode" Font-Bold="true" Font-Size="125%" /> <br /> <asp:DropDownList ID="DisplayModeDropdown" runat="server" AutoPostBack="true" Width="120" OnSelectedIndexChanged= "DisplayModeDropdown_SelectedIndexChanged"> </asp:DropDownList> <hr /> <asp:WebPartZone ID="WebPartZone1" runat="server"> <ZoneTemplate> <aspSample:ZipCodeWebPart ID="zip1" runat="server" Title="Zip Code Provider" /> <aspSample:WeatherWebPart ID="weather1" runat="server" Title="Zip Code Consumer" /> </ZoneTemplate> </asp:WebPartZone> <asp:ConnectionsZone ID="ConnectionsZone1" runat="server" /> </div> </form> </body> </html>
ブラウザにページを読み込んだ後、ドロップダウン リストをクリックし、[接続] を選択してページを接続表示モードに切り替えます。ページが接続表示モードにあることを伝えるメッセージが表示されます。いずれかの WebPart コントロールのタイトル バーにある動詞メニュー (矢印記号) をクリックし、動詞メニューの [接続] をクリックします。接続 UI が表示されたら、リンクをクリックして接続を作成します。表示される接続 UI 内のドロップダウン リストを使用して、この接続に関係するもう一方のコントロールを選択し、[接続] をクリックします。接続が確立されます。[閉じる] をクリックし、ページの先頭にあるドロップダウン リストを使用して、ページをブラウズ表示モードに戻します。

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からWebPartManager.ConnectDisplayMode フィールドを検索する場合は、下記のリンクをクリックしてください。

- WebPartManager.ConnectDisplayMode フィールドのページへのリンク