WebPartManager.DisconnectWebParts(WebPartConnection) Methode

Definition

Führt den Prozess des Trennens von auf einer Webseite verbundenen Serversteuerelementen aus.

C#
public virtual void DisconnectWebParts(System.Web.UI.WebControls.WebParts.WebPartConnection connection);

Parameter

connection
WebPartConnection

Eine WebPartConnection, die die Verbindung zwischen Serversteuerelementen darstellt.

Ausnahmen

connection ist null.

connection ist weder in StaticConnections noch in DynamicConnections enthalten.

StaticConnections ist schreibgeschützt.

- oder -

connection wurde bereits von StaticConnections getrennt.

- oder -

DynamicConnections ist schreibgeschützt.

- oder -

connection wurde bereits von DynamicConnections getrennt.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie die DisconnectWebParts-Methode verwenden. Mithilfe von zwei benutzerdefinierten WebPart Steuerelementen können Sie auf der Webseite eine Verbindung zwischen den Steuerelementen herstellen, indem Sie auf eine Schaltfläche klicken, während Sie mit einer anderen Schaltfläche die Steuerelemente trennen können.

Das Codebeispiel umfasst vier Teile:

  • Ein Benutzersteuerelement zum Ändern der Anzeigemodi.

  • Eine Quelldatei mit benutzerdefinierten WebPart Steuerelementen.

  • Eine Webseite zum Hosten der Steuerelemente.

  • Eine Erläuterung der Funktionsweise des Beispiels in einem Browser.

Der erste Teil des Codebeispiels ist das Benutzersteuerelement zum Ändern der Anzeigemodi. Sie können den Quellcode für das Benutzersteuerelement im Abschnitt Beispiel der WebPartManager Klassenübersicht abrufen. Weitere Informationen zu Anzeigemodi und zur Funktionsweise des Benutzersteuerelements finden Sie unter Exemplarische Vorgehensweise: Ändern von Anzeigemodi auf einer Webparts-Seite.

Der zweite Teil ist eine Datei, die den Quellcode für die beiden benutzerdefinierten WebPart Steuerelemente enthält, die verbunden werden. Damit das Codebeispiel ausgeführt werden kann, müssen Sie diesen Quellcode kompilieren. Sie können sie explizit kompilieren und die resultierende Assembly im Ordner Bin ihrer Website oder im globalen Assemblycache ablegen. Alternativ können Sie den Quellcode im Ordner App_Code Ihrer Website ablegen, wo er zur Laufzeit dynamisch kompiliert wird. In diesem Beispiel wird die dynamische Kompilierung verwendet, sodass die Register -Direktive, die auf diese Komponenten in der Webseite verweist, oben auf der Webseite entsprechend deklariert wird. Eine exemplarische Vorgehensweise, die Kompilierungsoptionen veranschaulicht, finden Sie unter Exemplarische Vorgehensweise: Entwickeln und Verwenden eines benutzerdefinierten Webserversteuerelements.

C#
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);
    }
  }
}

Der dritte Teil des Codebeispiels ist die Webseite. Beachten Sie, dass oben Anweisungen zum Registrieren des Benutzersteuerelements und der dynamisch kompilierten Assembly mit den WebPart Steuerelementen enthalten Register sind. Die Seite verfügt über zwei primäre Methoden. Die Button1_Click -Methode erstellt eine Verbindung zwischen den Steuerelementen, und die Button2_Click -Methode trennt die Steuerelemente.

ASP.NET (C#)
<%@ 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>

Nachdem Sie die Seite geladen haben, können Sie auf die Schaltfläche Verbinden klicken, um die Steuerelemente zu verbinden. Wenn Sie Text in das Textfeld-Steuerelement eingeben und dann auf die Eingabetaste klicken, wird der Text im verbundenen Steuerelement angezeigt (er wird nicht angezeigt, wenn die Steuerelemente getrennt würden). Wenn Sie auf die Schaltfläche Trennen klicken, werden die Steuerelemente getrennt. Sie können den Verbindungsstatus der Steuerelemente überprüfen, indem Sie das Dropdown-Listensteuerelement Anzeigemodus verwenden, um die Seite in den Verbindungsmodus zu wechseln. Klicken Sie anschließend auf das Verbenmenü (dargestellt durch einen Pfeil) in der Titelleiste eines der Steuerelemente, und wählen Sie das Element Verbinden aus. Die Benutzeroberfläche für die Verbindung wird angezeigt. es ist verfügbar, da auf der Seite ein <asp:connectionszone> Element deklariert ist. Sie können die Steuerelemente auch über diese Benutzeroberfläche verbinden und trennen.

Hinweise

Die DisconnectWebParts -Methode führt den vollständigen Prozess zum Beenden einer Verbindung zwischen WebPart oder Serversteuerelementen durch, wenn Sie ihr den connection Parameter übergeben.

Diese Methode wird verwendet, um Steuerelemente zu trennen, wenn Sie ein <asp:connectionszone> Element auf einer Webseite platzieren, um eine Benutzeroberfläche (UI) zum Verwalten von Verbindungen bereitzustellen. Wenn sich eine Seite im Verbindungsanzeigemodus (ConnectDisplayMode) befindet und eine aktuelle Verbindung vorhanden ist, können Benutzer auf eine Schaltfläche klicken, die die DisconnectWebParts -Methode aufruft, um die Verbindung zu beenden.

Sie können die DisconnectWebParts -Methode auch direkt aus Ihrem Code aufrufen, wenn Sie steuerelemente programmgesteuert trennen möchten, ohne einer Seite ein <asp:connectionszone> Element hinzufügen zu müssen.

Hinweise für Vererber

Sie können die DisconnectWebParts(WebPartConnection) -Methode überschreiben, wenn Sie die Standardimplementierung für das Trennen von Steuerelementen WebPart ändern möchten. Wenn Sie die -Methode überschreiben und einfach der vorhandenen Methode eine Implementierung hinzufügen möchten, können Sie die Basismethode aufrufen, bevor Sie Ihren eigenen Code ausführen.

Gilt für:

Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Weitere Informationen