Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

WebPartManager.CloseWebPart méthode (WebPart)

 

Date de publication : novembre 2016

Ferme un WebPart contrôle de sorte qu’il n’est pas rendu sur une page Web, mais peut être rouverte.

Espace de noms:   System.Web.UI.WebControls.WebParts
Assembly:  System.Web (dans System.Web.dll)

public void CloseWebPart(
	WebPart webPart
)

Paramètres

webPart
Type: System.Web.UI.WebControls.WebParts.WebPart

Un WebPart ou un contrôle serveur qui est en cours de fermeture dans un WebPartZoneBase.

Exception Condition
ArgumentNullException

webPart a la valeur null.

ArgumentException

webPart n’est pas dans le Controls collection.

ou

webPart est un contrôle partagé et a déjà été fermé par un autre utilisateur.

Le CloseWebPart méthode supprime une WebPart ou autre contrôle serveur afin qu’il n’est pas restitué sur la page Web qui le contenait à l’origine. Le contrôle fermé est ajouté à un PageCatalogPart objet, qui conserve une référence au contrôle fermé et permet au contrôle d’être restauré à la page. Une clôture WebPart contrôle apparaît toujours dans la collection référencée par la WebParts propriété.

Fermeture d’un contrôle est différente de sa suppression. Les contrôles fermés sont toujours disponibles pour être restaurée sur une page, mais une instance de contrôle supprimée est définitivement supprimée et ne peut jamais être restaurée. Indépendamment de si un WebPart ou contrôle de serveur est statique (déclaré dans le balisage d’une page) ou dynamique (ajouté à la page par programme ou par un utilisateur à partir d’un catalogue WebPart), il peut être fermé et rouvert sur une page.

En règle générale, les utilisateurs peuvent fermer un WebPart contrôle en cliquant sur son menu d’actions verbales et en sélectionnant le verbe close. Un contrôle peut également être fermé en appelant directement les CloseWebPart méthode et en lui transmettant une référence à webPart.

Sur une page où WebPart contrôles ont été fermés, si un développeur déclare un <asp:catalogzone> élément et lui ajoute un <asp:pagecatalogpart> élément, il fournit une interface simple de l’utilisateur (IU) permettant aux utilisateurs de restaurer les contrôles fermés à la page en cours d’exécution. Les utilisateurs peuvent basculer la page en mode d’affichage catalogue, et les contrôles fermés apparaîtront dans le catalogue de la page. Les utilisateurs peuvent sélectionner des contrôles fermés et les ajouter à la page à la position de leur choix, et les contrôles sélectionnés sont restaurés sur la page et rendus comme d’habitude.

Lorsque le CloseWebPart est appelée, elle déclenche plusieurs événements : WebPartClosing, SelectedWebPartChanging (s’il y a plusieurs contrôles) et WebPartsDisconnecting (s’il existe des contrôles connectés). Les développeurs peuvent généralement annuler ces événements, mais dans certains cas, il n’est pas possible de les annuler. Pour plus d’informations, consultez la documentation pour le WebPartClosing, SelectedWebPartChanging, et WebPartsDisconnecting les événements.

L'exemple de code suivant illustre l'utilisation de la méthode CloseWebPart.

L’exemple de code comprend quatre parties :

  • Un contrôle utilisateur qui permet de modifier les modes d’affichage de page.

  • Personnalisé WebPart contrôle.

  • Une page Web.

  • Explication du fonctionne de l’exemple dans un navigateur.

La première partie de l’exemple de code est le contrôle utilisateur pour modifier les modes d’affichage. Vous pouvez obtenir le code source pour le contrôle utilisateur à partir de la section exemple de la WebPartManager vue d’ensemble de la classe. Pour plus d’informations sur les modes d’affichage et le fonctionne du contrôle utilisateur, consultez la page Walkthrough: Changing Display Modes on a Web Parts Page.

La deuxième partie de l’exemple de code est personnalisé WebPart contrôle. Pour l’exemple de code s’exécute, vous devez compiler ce code source. Vous pouvez compiler explicitement et placer l’assembly résultant dans le dossier Bin de votre site Web ou le global assembly cache. Vous pouvez également mettre le code source dans le dossier App_Code de votre site, où il sera compilé dynamiquement au moment de l’exécution. Cet exemple utilise l’approche de compilation dynamique ; Il y a donc aucun Assembly l’attribut dans la Register directive pour ce contrôle en haut de la page Web. Pour une procédure pas à pas qui montre comment compiler, consultez Walkthrough: Developing and Using a Custom Web Server Control.

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 (input.Text != String.Empty)
      {
        _contentText = input.Text + @"<br />";
        input.Text = String.Empty;
        DisplayContent.Text = this.ContentText;
      }
    }

  }
}

La troisième partie de l’exemple de code est la page Web. La page contient un CatalogZone zone, avec un <asp:pagecatalogpart> élément déclaré à l’intérieur. Voici ce que contiendra fermé WebPart contrôler et permettre aux utilisateurs d’ajouter à la page. Le Button1_Click méthode appelle directement la CloseWebPart méthode de fermeture personnalisée WebPart contrôler, bien qu’un utilisateur puisse également fermer le contrôle via le menu d’actions verbales.

<%@ 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>

Une fois que vous chargez la page dans un navigateur, fermez personnalisé WebPart contrôle en cliquant sur le menu d’actions verbales (symbolisé par une flèche) dans l’en-tête du contrôle, en cliquant sur Fermer. Maintenant modifier la page en mode catalogue en sélectionnant catalogue dans les Mode d’affichage contrôle de liste déroulante. Le catalogue de la page s’affiche avec le contrôle fermé. Sélectionnez la case à cocher en regard du contrôle fermé, cliquez sur Ajouter à ajouter à la page, puis cliquez sur Fermer pour retourner la page en mode de navigation. Le contrôle est restauré sur la page. Maintenant le fermer, cette fois en cliquant sur les Fermer le composant WebPart bouton.

.NET Framework
Disponible depuis 2.0
Retour au début
Afficher: