Bagikan melalui


WebPartManager.CloseWebPart(WebPart) Metode

Definisi

WebPart Menutup kontrol sederajat sehingga tidak dirender pada halaman Web, tetapi dapat dibuka kembali.

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

WebPart Kontrol server atau yang sedang ditutup dalam WebPartZoneBase.

Pengecualian

webPartadalah null.

webPart tidak ada dalam Controls koleksi.

-atau-

webPart adalah kontrol bersama dan telah ditutup oleh pengguna lain.

Contoh

Contoh kode berikut menunjukkan cara menggunakan CloseWebPart metode .

Contoh kode memiliki empat bagian:

  • Kontrol pengguna yang memungkinkan Anda mengubah mode tampilan halaman.

  • Kontrol kustom WebPart .

  • Halaman Web.

  • Penjelasan tentang cara kerja contoh di browser.

Bagian pertama dari contoh kode adalah kontrol pengguna untuk mengubah mode tampilan. Anda dapat memperoleh kode sumber untuk kontrol pengguna dari bagian Contoh dari WebPartManager gambaran umum kelas. Untuk informasi selengkapnya tentang mode tampilan dan cara kerja kontrol pengguna, lihat Panduan: Mengubah Mode Tampilan pada Halaman Bagian Web.

Bagian kedua dari contoh kode adalah kontrol kustom WebPart . Agar contoh kode berjalan, Anda harus mengkompilasi kode sumber ini. Anda dapat mengkompilasinya secara eksplisit dan menempatkan rakitan yang dihasilkan di folder Bin situs Web Anda atau singgahan perakitan global. Atau, Anda dapat meletakkan kode sumber di folder App_Code situs Anda, tempat kode tersebut akan dikompilasi secara dinamis pada durasi. Contoh ini menggunakan pendekatan kompilasi dinamis; dengan demikian tidak Assembly ada atribut dalam direktif Register untuk kontrol ini di bagian atas halaman Web. Untuk panduan yang menunjukkan cara mengkompilasi, lihat Panduan: Mengembangkan dan Menggunakan Kontrol Server Web Kustom.

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

Bagian ketiga dari contoh kode adalah halaman Web. Halaman berisi CatalogZone zona, dengan elemen yang <asp:pagecatalogpart> dinyatakan di dalamnya. Inilah yang akan berisi kontrol tertutup WebPart dan memungkinkan pengguna untuk menambahkannya kembali ke halaman. Metode ini Button1_Click secara langsung memanggil CloseWebPart metode untuk menutup kontrol kustom WebPart , meskipun pengguna juga dapat menutup kontrol melalui menu kata kerja.

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

Setelah Anda memuat halaman di browser, tutup kontrol kustom WebPart dengan mengklik menu kata kerja (simbol panah) di header kontrol, dan mengklik Tutup. Sekarang ubah halaman ke mode katalog dengan memilih Katalog di kontrol daftar drop-down Mode Tampilan . Katalog halaman muncul dengan kontrol tertutup. Pilih kotak centang di samping kontrol tertutup, klik Tambahkan untuk menambahkannya ke halaman, lalu klik Tutup untuk mengembalikan halaman untuk menelusuri mode. Kontrol dipulihkan ke halaman. Sekarang tutup lagi, kali ini dengan mengklik tombol Tutup WebPart .

Keterangan

Metode ini CloseWebPart menghapus WebPart kontrol server atau lainnya sehingga tidak dirender pada halaman Web yang awalnya berisinya. Kontrol tertutup ditambahkan ke PageCatalogPart objek, yang mempertahankan referensi ke kontrol tertutup dan memungkinkan kontrol dipulihkan ke halaman. Kontrol tertutup WebPart masih muncul dalam koleksi yang dirujuk WebParts oleh properti .

Menutup kontrol berbeda dengan menghapusnya. Kontrol tertutup masih tersedia untuk dipulihkan ke halaman, tetapi instans kontrol yang dihapus dihapus secara permanen dan tidak pernah dapat dipulihkan. Terlepas dari apakah WebPart kontrol server atau statis (dinyatakan dalam markup halaman) atau dinamis (ditambahkan ke halaman secara terprogram atau oleh pengguna dari katalog Bagian Web), itu dapat ditutup dan dibuka kembali pada halaman.

Biasanya, pengguna dapat menutup WebPart kontrol dengan mengklik menu kata kerjanya dan memilih kata kerja tutup. Kontrol juga dapat ditutup dengan langsung memanggil CloseWebPart metode dan meneruskannya referensi ke webPart.

Pada halaman di mana WebPart kontrol telah ditutup, jika pengembang mendeklarasikan <asp:catalogzone> elemen, dan di dalamnya menambahkan <asp:pagecatalogpart> elemen, ia menyediakan antarmuka pengguna (UI) sederhana bagi pengguna untuk memulihkan kontrol tertutup ke halaman pada durasi. Pengguna dapat mengalihkan halaman ke mode tampilan katalog, dan kontrol tertutup akan muncul dalam katalog halaman. Pengguna dapat memilih kontrol tertutup dan menambahkannya kembali ke halaman pada posisi apa pun yang mereka inginkan, lalu kontrol yang dipilih dipulihkan ke halaman dan dirender seperti biasa.

Ketika metode dipanggil CloseWebPart , metode ini memunculkan beberapa peristiwa: WebPartClosing, SelectedWebPartChanging (jika ada beberapa kontrol), dan WebPartsDisconnecting (jika ada kontrol yang terhubung). Biasanya pengembang dapat membatalkan peristiwa ini, tetapi dalam kasus tertentu tidak dimungkinkan untuk membatalkannya. Untuk detailnya, lihat dokumentasi untuk WebPartClosingperistiwa , , SelectedWebPartChangingdan WebPartsDisconnecting .

Berlaku untuk

Lihat juga