Aracılığıyla paylaş


WebPartManager.CloseWebPart(WebPart) Yöntem

Tanım

Denetimi WebPart , Web sayfasında işlenmez, ancak yeniden açılabilir şekilde kapatır.

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)

Parametreler

webPart
WebPart

içinde WebPart kapatılmakta olan bir WebPartZoneBaseveya sunucu denetimi.

Özel durumlar

webPart, null değeridir.

webPart koleksiyonda Controls değil.

-veya-

webPart paylaşılan bir denetimdir ve başka bir kullanıcı tarafından zaten kapatılmıştır.

Örnekler

Aşağıdaki kod örneğinde yönteminin nasıl kullanılacağı gösterilmektedir CloseWebPart .

Kod örneğinin dört bölümü vardır:

  • Sayfa görüntüleme modlarını değiştirmenize olanak tanıyan bir kullanıcı denetimi.

  • Özel WebPart denetim.

  • Web sayfası.

  • Örneğin tarayıcıda nasıl çalıştığını gösteren açıklama.

Kod örneğinin ilk bölümü, görüntüleme modlarını değiştirmeye yönelik kullanıcı denetimidir. Kullanıcı denetimi için kaynak kodunu sınıfa genel bakışın Örnek bölümünden WebPartManager alabilirsiniz. Görüntüleme modları ve kullanıcı denetiminin nasıl çalıştığı hakkında daha fazla bilgi için bkz . İzlenecek Yol: Web Bölümleri Sayfasında Görüntü Modlarını Değiştirme.

Kod örneğinin ikinci bölümü özel WebPart denetimdir. Kod örneğinin çalışması için bu kaynak kodunu derlemeniz gerekir. Bunu açıkça derleyebilir ve sonuçta elde edilen derlemeyi Web sitenizin Bin klasörüne veya genel derleme önbelleğine yerleştirebilirsiniz. Alternatif olarak, kaynak kodu sitenizin App_Code klasörüne koyabilirsiniz; burada çalışma zamanında dinamik olarak derlenir. Bu örnekte dinamik derleme yaklaşımı kullanılır; Bu nedenle, Web sayfasının en üstündeki bu denetim için yönergesinde öznitelik Register yokturAssembly. Derlemeyi gösteren bir izlenecek yol için bkz . İzlenecek Yol: Özel Web Sunucusu Denetimi Geliştirme ve Kullanma.

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

Kod örneğinin üçüncü bölümü Web sayfasıdır. Sayfa, içinde bir öğe bildirilen bir <asp:pagecatalogpart> bölge içerirCatalogZone. Kapalı WebPart denetimi içerecek ve kullanıcıların sayfaya yeniden eklemesini sağlayacak olan budur. Kullanıcı Button1_Click fiiller menüsünden CloseWebPart denetimi de kapatasa da yöntemi doğrudan özel WebPart denetimi kapatmak için yöntemini çağırır.

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

Sayfayı bir tarayıcıda yükledikten sonra, denetimin üst bilgisindeki fiiller menüsüne (ok simgesi) tıklayıp Kapat'a tıklayarak özel WebPart denetimi kapatın. Şimdi Görüntü Modu açılan liste denetiminde Katalog'a tıklayarak sayfayı katalog moduna geçirin. Sayfa kataloğu kapalı denetimle birlikte görüntülenir. Kapalı denetimin yanındaki onay kutusunu seçin, ekle'ye tıklayarak sayfaya ekleyin ve ardından Kapat'a tıklayarak sayfayı göz atma moduna geçirin. Denetim sayfaya geri yüklenir. Şimdi, bu kez Web Bölümü Kapat düğmesine tıklayarak yeniden kapatın.

Açıklamalar

CloseWebPart yöntemi, özgün olarak onu içeren Web sayfasında işlenmemesi için bir veya başka bir WebPart sunucu denetimini kaldırır. Kapalı denetim, kapalı denetime başvuruyu koruyan ve denetimin sayfaya geri yüklenmesini mümkün kılan bir PageCatalogPart nesneye eklenir. WebPart Kapalı denetim özelliği tarafından başvurulan koleksiyonda görünmeye devam ederWebParts.

Denetimin kapatılması, denetimin silinmesinden farklıdır. Kapalı denetimler bir sayfaya geri yüklenmeye devam edebilir, ancak silinen bir denetim örneği kalıcı olarak kaldırılır ve hiçbir zaman geri yüklenemez. Bir veya sunucu denetiminin statik (sayfanın işaretlemesinde bildirilir) veya dinamik (sayfaya program aracılığıyla veya Web Bölümleri kataloğundan bir kullanıcı tarafından eklenir) olmasına WebPart bakılmaksızın, kapatılabilir ve sayfada yeniden açılabilir.

Kullanıcılar genellikle fiil menüsüne tıklayıp kapatma fiilini seçerek denetimi WebPart kapatabilir. Bir denetim, doğrudan yöntemini çağırıp CloseWebPart öğesine bir başvuru webPartgeçirerek de kapatılabilir.

Denetimlerin kapatıldığı WebPart bir sayfada, geliştirici bir <asp:catalogzone> öğe bildirirse ve içinde bir <asp:pagecatalogpart> öğe eklerse, kullanıcıların çalışma zamanında kapalı denetimleri sayfaya geri yüklemeleri için basit bir kullanıcı arabirimi (UI) sağlar. Kullanıcılar sayfayı katalog görüntüleme moduna geçirebilir ve kapalı denetimler sayfa kataloğunda görünür. Kullanıcılar kapalı denetimleri seçip istedikleri konumda sayfaya geri ekleyebilir ve ardından seçilen denetimler sayfaya geri yüklenir ve normal şekilde işlenir.

CloseWebPart Yöntemi çağrıldığında birkaç olay oluşturur: WebPartClosing, SelectedWebPartChanging (birden çok denetim varsa) ve WebPartsDisconnecting (bağlı denetimler varsa). Normalde geliştiriciler bu olayları iptal edebilir, ancak bazı durumlarda iptal etmek mümkün değildir. Ayrıntılar için , SelectedWebPartChangingve WebPartsDisconnecting olaylarının belgelerine WebPartClosingbakın.

Şunlara uygulanır

Ayrıca bkz.