WebPartManager.CloseWebPart(WebPart) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Schließt ein WebPart-Steuerelement, sodass es auf einer Webseite zwar nicht wiedergegeben wird, aber erneut geöffnet werden kann.
public:
void CloseWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public void CloseWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart);
member this.CloseWebPart : System.Web.UI.WebControls.WebParts.WebPart -> unit
Public Sub CloseWebPart (webPart As WebPart)
Parameter
- webPart
- WebPart
Ein WebPart-Steuerelement oder Serversteuerelement, das in einer WebPartZoneBase geschlossen wird.
Ausnahmen
webPart
ist null
.
webPart
ist nicht in der Controls-Auflistung enthalten.
- oder -
webPart
ist ein freigegebenes Steuerelement und wurde bereits von einem anderen Benutzer geschlossen.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie die CloseWebPart-Methode verwenden.
Das Codebeispiel umfasst vier Teile:
Ein Benutzersteuerelement, mit dem Sie seitenanzeigemodi ändern können.
Ein benutzerdefiniertes WebPart Steuerelement.
Eine Webseite.
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 des Codebeispiels ist das benutzerdefinierte WebPart Steuerelement. 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 der Dynamische Kompilierungsansatz verwendet. Daher ist in der Register
-Direktive für dieses Steuerelement oben auf der Webseite kein Assembly
Attribut vorhanden. Eine exemplarische Vorgehensweise, die das Kompilieren veranschaulicht, finden Sie unter Exemplarische Vorgehensweise: Entwickeln und Verwenden eines benutzerdefinierten Webserversteuerelements.
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
{
[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 (!string.IsNullOrEmpty(input.Text))
{
_contentText = input.Text + @"<br />";
input.Text = String.Empty;
DisplayContent.Text = this.ContentText;
}
}
}
}
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
<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
Der dritte Teil des Codebeispiels ist die Webseite. Die Seite enthält eine CatalogZone Zone, in der ein <asp:pagecatalogpart>
Element deklariert ist. Dies ist das , was das geschlossene WebPart Steuerelement enthält und es Benutzern ermöglicht, es der Seite wieder hinzuzufügen. Die Button1_Click
-Methode ruft die CloseWebPart -Methode direkt auf, um das benutzerdefinierte WebPart Steuerelement zu schließen, obwohl ein Benutzer das Steuerelement auch über das Verbenmenü schließen kann.
<%@ 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)
{
mgr1.CloseWebPart(text1);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:WebPartManager ID="mgr1" runat="server" />
<uc1:DisplayModeMenuCS ID="menu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:TextDisplayWebPart ID="text1"
runat="server"
Title="My Text WebPart" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:CatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
</ZoneTemplate>
</asp:CatalogZone>
<asp:Button ID="Button1" runat="server"
Text="Close WebPart"
OnClick="Button1_Click" />
</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)
mgr1.CloseWebPart(text1)
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">
<asp:WebPartManager ID="mgr1" runat="server" />
<uc1:DisplayModeMenuVB ID="menu1" runat="server" />
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:TextDisplayWebPart ID="text1"
runat="server"
Title="My Text WebPart" />
</ZoneTemplate>
</asp:WebPartZone>
<asp:CatalogZone ID="CatalogZone1" runat="server">
<ZoneTemplate>
<asp:PageCatalogPart ID="PageCatalogPart1" runat="server" />
</ZoneTemplate>
</asp:CatalogZone>
<asp:Button ID="Button1" runat="server"
Text="Close WebPart"
OnClick="Button1_Click" />
</form>
</body>
</html>
Nachdem Sie die Seite in einem Browser geladen haben, schließen Sie das benutzerdefinierte WebPart Steuerelement, indem Sie in der Kopfzeile des Steuerelements auf das Verbenmenü (das Pfeilsymbol) klicken und auf Schließen klicken. Ändern Sie nun die Seite in den Katalogmodus, indem Sie im Dropdown-Listensteuerelement Anzeigemodus die Option Katalog auswählen. Der Seitenkatalog wird mit dem geschlossenen Steuerelement angezeigt. Aktivieren Sie das Kontrollkästchen neben dem geschlossenen Steuerelement, klicken Sie auf Hinzufügen , um es der Seite hinzuzufügen, und klicken Sie dann auf Schließen , um die Seite in den Browsermodus zurückzugeben. Das Steuerelement wird auf der Seite wiederhergestellt. Schließen Sie es nun erneut, indem Sie auf die Schaltfläche WebPart schließen klicken.
Hinweise
Die CloseWebPart -Methode entfernt ein oder ein WebPart anderes Serversteuerelement, sodass es nicht auf der Webseite gerendert wird, die es ursprünglich enthielt. Das geschlossene Steuerelement wird einem PageCatalogPart -Objekt hinzugefügt, das einen Verweis auf das geschlossene Steuerelement verwaltet und ermöglicht die Wiederherstellung des Steuerelements auf der Seite. Ein geschlossenes WebPart Steuerelement wird weiterhin in der Auflistung angezeigt, auf die von der WebParts -Eigenschaft verwiesen wird.
Das Schließen eines Steuerelements unterscheidet sich vom Löschen eines Steuerelements. Geschlossene Steuerelemente können weiterhin auf einer Seite wiederhergestellt werden, aber ein gelöschtes Steuerelement instance wird dauerhaft entfernt und kann nie wiederhergestellt werden. Unabhängig davon, ob ein - oder - WebPart Serversteuerelement statisch (im Markup einer Seite deklariert) oder dynamisch (programmgesteuert oder von einem Benutzer aus einem Webpartskatalog zur Seite hinzugefügt) ist, kann es geschlossen und erneut auf einer Seite geöffnet werden.
In der Regel können Benutzer ein WebPart Steuerelement schließen, indem sie auf das Menü "Verben" klicken und das Verb schließen auswählen. Ein Steuerelement kann auch geschlossen werden, indem die CloseWebPart -Methode direkt aufgerufen und ein Verweis auf webPart
übergeben wird.
Wenn ein Entwickler auf einer Seite, auf der WebPart Steuerelemente geschlossen wurden, ein <asp:catalogzone>
Element deklariert und darin ein <asp:pagecatalogpart>
Element hinzufügt, wird eine einfache Benutzeroberfläche (UI) bereitgestellt, auf der Benutzer geschlossene Steuerelemente zur Laufzeit auf der Seite wiederherstellen können. Benutzer können die Seite in den Kataloganzeigemodus wechseln, und die geschlossenen Steuerelemente werden im Seitenkatalog angezeigt. Benutzer können geschlossene Steuerelemente auswählen und sie an beliebiger Position wieder der Seite hinzufügen. Anschließend werden die ausgewählten Steuerelemente auf der Seite wiederhergestellt und normal gerendert.
Wenn die CloseWebPart -Methode aufgerufen wird, löst sie mehrere Ereignisse aus: WebPartClosing, SelectedWebPartChanging (wenn mehrere Steuerelemente vorhanden sind) und WebPartsDisconnecting (wenn verbundene Steuerelemente vorhanden sind). Normalerweise können Entwickler diese Ereignisse abbrechen, aber in bestimmten Fällen ist es nicht möglich, sie abzubrechen. Weitere Informationen finden Sie in der Dokumentation für die WebPartClosingEreignisse , SelectedWebPartChangingund WebPartsDisconnecting .
Gilt für:
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für