WebPartManager.DisconnectWebParts メソッド
アセンブリ: System.Web (system.web.dll 内)

Public Overridable Sub DisconnectWebParts ( _ connection As WebPartConnection _ )
Dim instance As WebPartManager Dim connection As WebPartConnection instance.DisconnectWebParts(connection)
public virtual void DisconnectWebParts ( WebPartConnection connection )
public: virtual void DisconnectWebParts ( WebPartConnection^ connection )
public void DisconnectWebParts ( WebPartConnection connection )
public function DisconnectWebParts ( connection : WebPartConnection )
- connection
サーバー コントロール間の接続を表す WebPartConnection。

例外の種類 | 条件 |
---|---|
ArgumentNullException | connection が null 参照 (Visual Basic では Nothing) です。 |
ArgumentException | StaticConnections またはDynamicConnections のいずれかに connection が含まれていません。 |
InvalidOperationException | StaticConnections は読み取り専用です。 または connection は既に StaticConnections から接続解除されています。 または DynamicConnections は読み取り専用です。 または connection は既に DynamicConnections から接続解除されています。 |

DisconnectWebParts メソッドは connection パラメータが渡されると、WebPart コントロールまたはサーバー コントロール間の接続を終了する完全なプロセスを実行します。
このメソッドは、Web ページに <asp:connectionszone> 要素を配置するときにコントロールの接続を解除し、接続を管理するユーザー インターフェイス (UI) を提供するために使用します。ページが接続表示モード (ConnectDisplayMode) にあり、現在接続が存在する場合に、ユーザーは DisconnectWebParts メソッドを呼び出すボタンをクリックして接続を終了できます。
また、ページに <asp:connectionszone> 要素を追加することなく、プログラムでコントロールの接続を解除する場合、コードから DisconnectWebParts メソッドを直接呼び出すこともできます。
継承時の注意 WebPart コントロールの接続を解除する既定の実装を変更する場合は、DisconnectWebParts メソッドをオーバーライドできます。このメソッドをオーバーライドし、単に既存のメソッドに何らかの実装を追加する場合は、コードを実行する前に基本メソッドを呼び出します。
DisconnectWebParts メソッドを使用する方法を次のコード例に示します。2 つのカスタム WebPart コントロールを使用して、Web ページで 1 つのボタンをクリックしてコントロール間に接続を作成し、もう 1 つのボタンを使用してコントロールの接続を解除できます。
コード例の最初の部分は、表示モードを変更するユーザー コントロールです。このユーザー コントロールのソース コードは、WebPartManager クラスの概要の「例」から取得できます。表示モードの詳細およびユーザー コントロールの動作方法の詳細については、「チュートリアル : Web パーツ ページでの表示モードの変更」を参照してください。
2 番目の部分は、接続する 2 つのカスタム WebPart コントロールのソース コードが含まれたファイルです。コード例を実行するためには、このソース コードをコンパイルする必要があります。それを明示的にコンパイルし、コンパイル済みのアセンブリを Web サイトの Bin フォルダまたはグローバル アセンブリ キャッシュに配置できます。サイトの App_Code フォルダにソース コードを配置し、実行時に動的にコンパイルすることもできます。この例では動的コンパイルを使用します。このため、Web ページのこれらのコンポーネントを参照する Register ディレクティブを Web ページの先頭で適切に宣言します。コンパイル オプションを示すチュートリアルについては、「チュートリアル : カスタム サーバー コントロールの開発と使用」を参照してください。
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); } } }
コード例の 3 番目の部分は Web ページです。先頭近くには、ユーザー コントロールを登録する Register ディレクティブ、および WebPart コントロールで動的にコンパイルされたアセンブリがあります。このページには 2 つの主要なメソッドがあります。Button1_Click メソッドはコントロールの間に接続を作成し、Button2_Click メソッドはコントロールの接続を解除します。
<%@ Page Language="vb" %> <%@ Register TagPrefix="uc1" TagName="DisplayModeMenuVB" Src="~/displaymodemenuvb.ascx" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.VB.Controls" %> <script runat="server"> Protected Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Dim mgr As WebPartManager = _ WebPartManager.GetCurrentWebPartManager(Page) Dim provPoint As ProviderConnectionPoint = _ mgr.GetProviderConnectionPoints(zip1)("ZipCodeProvider") Dim connPoint As ConsumerConnectionPoint = _ mgr.GetConsumerConnectionPoints(weather1)("ZipCodeConsumer") mgr.ConnectWebParts(zip1, provPoint, weather1, connPoint) End Sub Protected Sub Button2_Click(ByVal sender as Object, _ ByVal e as System.EventArgs) If mgr.Connections.Count >= 1 AndAlso _ mgr.Connections(0) IsNot Nothing Then mgr.DisconnectWebParts(mgr.Connections(0)) End If End Sub </script> <html > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:WebPartManager ID="mgr" runat="server"> </asp:WebPartManager> <uc1:DisplayModeMenuVB ID="menu1" runat="server" /> <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"> </asp:ConnectionsZone> <asp:Button ID="Button1" runat="server" Text="Connect WebPart Controls" OnClick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="Disconnect WebPart Controls" OnClick="Button2_Click" /> </div> </form> </body> </html>
<%@ Page Language="C#" %> <%@ Register TagPrefix="uc1" TagName="DisplayModeMenuCS" Src="~/displaymodemenucs.ascx" %> <%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS.Controls" %> <script runat="server"> protected void Button1_Click(object sender, EventArgs e) { ProviderConnectionPoint provPoint = mgr.GetProviderConnectionPoints(zip1)["ZipCodeProvider"]; ConsumerConnectionPoint connPoint = mgr.GetConsumerConnectionPoints(weather1)["ZipCodeConsumer"]; WebPartConnection conn1 = mgr.ConnectWebParts(zip1, provPoint, weather1, connPoint); } protected void Button2_Click(object sender, EventArgs e) { if (mgr.Connections.Count >= 1 && mgr.Connections[0] != null) mgr.DisconnectWebParts(mgr.Connections[0]); } </script> <html > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:WebPartManager ID="mgr" runat="server"> </asp:WebPartManager> <uc1:DisplayModeMenuCS ID="menu1" runat="server" /> <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"> </asp:ConnectionsZone> <asp:Button ID="Button1" runat="server" Text="Connect WebPart Controls" OnClick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="Disconnect WebPart Controls" OnClick="Button2_Click" /> </div> </form> </body> </html>
ページを読み込んだ後、[接続] をクリックしてコントロールを接続できます。テキスト ボックス コントロールに何らかのテキストを入力し、[Enter] をクリックすると、接続されたコントロールにそのテキストが表示されます (コントロールが接続解除されていると表示されません)。[切断] をクリックすると、コントロールの接続が解除されます。[Display Mode] ドロップダウン リスト コントロールを使用してページを [接続] モードに切り替えると、そのコントロールの接続状態を確認できます。確認した後、いずれかのコントロールのタイトル バーにある動詞メニュー (矢印で表現) をクリックし、[接続] 項目を選択します。接続 UI が表示されます。ページに <asp:connectionszone> 要素が宣言されているため、接続 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.DisconnectWebParts メソッドを検索する場合は、下記のリンクをクリックしてください。

- WebPartManager.DisconnectWebParts メソッドのページへのリンク