WebPartManager.DisconnectWebParts(WebPartConnection) Metodo

Definizione

Esegue il processo di disconnessione dei controlli server connessi in una pagina Web.Carries out the process of disconnecting server controls that are connected on a Web page.

public:
 virtual void DisconnectWebParts(System::Web::UI::WebControls::WebParts::WebPartConnection ^ connection);
public virtual void DisconnectWebParts (System.Web.UI.WebControls.WebParts.WebPartConnection connection);
abstract member DisconnectWebParts : System.Web.UI.WebControls.WebParts.WebPartConnection -> unit
override this.DisconnectWebParts : System.Web.UI.WebControls.WebParts.WebPartConnection -> unit
Public Overridable Sub DisconnectWebParts (connection As WebPartConnection)

Parametri

connection
WebPartConnection

Classe WebPartConnection che rappresenta una connessione tra controlli server.A WebPartConnection that represents the connection between server controls.

Eccezioni

connection è null.connection is null.

connectionnon è contenuto in StaticConnections o DynamicConnections.connection is not contained in either StaticConnections or DynamicConnections.

StaticConnections è di sola lettura.StaticConnections is read-only.

In alternativa-or- connection è già stato disconnesso da StaticConnections.connection has already been disconnected from StaticConnections.

-oppure--or- DynamicConnections è di sola lettura.DynamicConnections is read-only.

-oppure--or- connection è già stato disconnesso da DynamicConnections.connection has already been disconnected from DynamicConnections.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come utilizzare il metodo DisconnectWebParts.The following code example demonstrates how to use the DisconnectWebParts method. Utilizzando due controlli WebPart personalizzati, la pagina Web consente di creare una connessione tra i controlli facendo clic su un pulsante, mentre un altro pulsante consente di disconnettere i controlli.Using two custom WebPart controls, the Web page enables you to create a connection between the controls by clicking a button, while another button enables you to disconnect the controls.

L'esempio di codice è costituito da quattro parti:The code example has four parts:

  • Controllo utente per la modifica delle modalità di visualizzazione.A user control for changing display modes.

  • File di origine contenente controlli WebPart personalizzati.A source file containing custom WebPart controls.

  • Pagina Web per ospitare i controlli.A Web page to host the controls.

  • Spiegazione del funzionamento dell'esempio in un browser.An explanation of how the example works in a browser.

La prima parte dell'esempio di codice è il controllo utente per la modifica delle modalità di visualizzazione.The first part of the code example is the user control for changing display modes. È possibile ottenere il codice sorgente per il controllo utente dalla sezione esempio della panoramica della WebPartManager classe.You can obtain the source code for the user control from the Example section of the WebPartManager class overview. Per ulteriori informazioni sulle modalità di visualizzazione e sul funzionamento del controllo utente, vedere Procedura dettagliata: Modifica delle modalità di visualizzazione in unapagina Web part.For more information about display modes and how the user control works, see Walkthrough: Changing Display Modes on a Web Parts Page.

La seconda parte è un file che contiene il codice sorgente per i due WebPart controlli personalizzati che verranno connessi.The second part is a file containing the source code for the two custom WebPart controls that will be connected. Per eseguire l'esempio di codice, è necessario compilare questo codice sorgente.For the code example to run, you must compile this source code. È possibile compilarlo in modo esplicito e inserire l'assembly risultante nella cartella bin del sito Web o nel Global Assembly Cache.You can compile it explicitly and put the resulting assembly in your Web site's Bin folder or the global assembly cache. In alternativa, è possibile inserire il codice sorgente nella cartella App_Code del sito, in cui verrà compilato dinamicamente in fase di esecuzione.Alternatively, you can put the source code in your site's App_Code folder, where it will be dynamically compiled at run time. In questo esempio viene utilizzata la compilazione dinamica Register , pertanto la direttiva che fa riferimento a questi componenti nella pagina Web viene dichiarata di conseguenza nella parte superiore della pagina Web.This example uses dynamic compilation, so the Register directive that references these components in the Web page is declared accordingly at the top of the Web page. Per una procedura dettagliata che illustra la compilazione di opzioni , vedere Procedura dettagliata: Sviluppo e utilizzo di un controlloserver Web personalizzato.For a walkthrough that demonstrates compiling options, see Walkthrough: Developing and Using a Custom Web Server Control.

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 (!string.IsNullOrEmpty(input.Text))
      {
        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);
    }
  }
}
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

    Protected Overrides Sub CreateChildControls()
      Controls.Clear()
      DisplayContent = New Label()
      Me.Controls.Add(DisplayContent)

    End Sub

  End Class

End Namespace

La terza parte dell'esempio di codice è la pagina Web.The third part of the code example is the Web page. Si noti che nella parte superiore sono contenute Register le direttive per registrare il controllo utente e l'assembly compilato dinamicamente con WebPart i controlli.Notice that near the top, it contains Register directives to register the user control and the dynamically compiled assembly with the WebPart controls. La pagina dispone di due metodi principali.The page has two primary methods. Il Button1_Click metodo crea una connessione tra i controlli e il Button2_Click metodo disconnette i controlli.The Button1_Click method creates a connection between the controls, and the Button2_Click method disconnects the controls.

<%@ 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">
<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 xmlns="http://www.w3.org/1999/xhtml" >
<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>
<%@ 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">
<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 xmlns="http://www.w3.org/1999/xhtml" >
<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>

Una volta caricata la pagina, è possibile fare clic sul pulsante Connetti per connettere i controlli.After you load the page, you can click the Connect button to connect the controls. Se si immette del testo nel controllo casella di testo e quindi si fa clic sul pulsante invio , il testo verrà visualizzato nel controllo connesso (non verrà visualizzato se i controlli sono stati disconnessi).If you enter some text in the text box control, and then click the Enter button, the text will be displayed in the connected control (it would not be displayed if the controls were disconnected). Se si fa clic sul pulsante Disconnetti , i controlli verranno disconnessi.If you click the Disconnect button, the controls will be disconnected. Per verificare lo stato di connessione dei controlli, è possibile utilizzare il controllo elenco a discesa modalità di visualizzazione per passare alla modalità di connessione della pagina.You can verify the connection status of the controls by using the Display Mode drop-down list control to switch the page into Connect mode. Al termine di questa operazione, fare clic sul menu dei verbi (rappresentato da una freccia) nella barra del titolo di uno dei controlli e selezionare l'elemento Connect .After doing that, click the verbs menu (represented by an arrow) in the title bar of one of the controls, and select the Connect item. Viene visualizzata l'interfaccia utente di connessione. è disponibile perché nella pagina è presente <asp:connectionszone> un elemento dichiarato.The connection UI is displayed; it is available because there is an <asp:connectionszone> element declared in the page. È anche possibile connettere e disconnettere i controlli da questa interfaccia utente.You can also connect and disconnect the controls from this UI.

Commenti

Il DisconnectWebParts metodo esegue il processo completo di chiusura di una connessione tra WebPart o controlli server, quando si passa il connection parametro.The DisconnectWebParts method carries out the complete process of ending a connection between WebPart or server controls, when you pass it the connection parameter.

Questo metodo viene utilizzato per disconnettere i controlli quando si <asp:connectionszone> inserisce un elemento in una pagina Web, per fornire un'interfaccia utente (UI) per la gestione delle connessioni.This method is used to disconnect controls when you place an <asp:connectionszone> element in a Web page, to provide a user interface (UI) for managing connections. Quando una pagina è in modalità di visualizzazione connessioneConnectDisplayMode() e esiste una connessione corrente, gli utenti possono fare clic su un pulsante DisconnectWebParts che chiama il metodo per terminare la connessione.When a page is in connect display mode (ConnectDisplayMode), and a current connection exists, users can click a button that calls the DisconnectWebParts method to end the connection.

È anche possibile chiamare il DisconnectWebParts metodo direttamente dal codice, se si desidera disconnettere i controlli a livello di codice e senza dover aggiungere <asp:connectionszone> un elemento a una pagina.You can also call the DisconnectWebParts method directly from your code, if you want to disconnect controls programmatically and without having to add an <asp:connectionszone> element to a page.

Note per gli eredi

È possibile eseguire l' DisconnectWebParts(WebPartConnection) override del metodo se si desidera modificare l'implementazione predefinita per la WebPart disconnessione di controlli.You can override the DisconnectWebParts(WebPartConnection) method if you want to change the default implementation for disconnecting WebPart controls. Se si esegue l'override del metodo e si desidera semplicemente aggiungere un'implementazione al metodo esistente, è possibile chiamare il metodo di base prima di eseguire il proprio codice.If you do override the method, and you simply want to add some implementation to the existing method, you can call the base method prior to executing your own code.

Si applica a

Vedi anche