Bagikan melalui


WebPartManager.CreateWebPart(Control) Metode

Definisi

Membungkus kontrol server yang bukan WebPart kontrol dengan GenericWebPart objek, sehingga kontrol bisa memiliki fungsionalitas Bagian Web.

public:
 virtual System::Web::UI::WebControls::WebParts::GenericWebPart ^ CreateWebPart(System::Web::UI::Control ^ control);
public virtual System.Web.UI.WebControls.WebParts.GenericWebPart CreateWebPart (System.Web.UI.Control control);
abstract member CreateWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
override this.CreateWebPart : System.Web.UI.Control -> System.Web.UI.WebControls.WebParts.GenericWebPart
Public Overridable Function CreateWebPart (control As Control) As GenericWebPart

Parameter

control
Control

Kontrol server yang bukan WebPart kontrol.

Mengembalikan

GenericWebPart yang membungkus control dan memungkinkannya berfungsi sebagai kontrol sejatiWebPart.

Contoh

Contoh kode berikut menunjukkan penggunaan CreateWebPart metode . Button2_Click methodDalam , CreateWebPart metode dipanggil untuk membungkus Calendar kontrol dengan GenericWebPart objek sebelum menambahkannya ke zona.

<%@ Page Language="C#" %>

<!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 Button2_Click(object sender, EventArgs e)
  {
    WebPartManager mgr = WebPartManager1;
    Calendar cal = new Calendar();
    cal.ID = "cal1";
    GenericWebPart calWebPart = mgr.CreateWebPart(cal);
    mgr.AddWebPart(calWebPart, WebPartZone1, 1);
  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    if (WebPartZone1.WebParts.Count > 1)
    {
      WebPart cal = WebPartZone1.WebParts[1];
      if (cal.Controls[0].GetType().Name == "Calendar" 
        && cal != null)
        WebPartManager1.DeleteWebPart(cal);
    }

  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Adding a Server Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList  
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>

<!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 Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    Dim mgr As WebPartManager = WebPartManager1
    Dim cal As New Calendar()
    cal.ID = "cal1"
    Dim calWebPart As GenericWebPart = mgr.CreateWebPart(cal)
    mgr.AddWebPart(calWebPart, WebPartZone1, 1)
  End Sub

  Protected Sub Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)

    If WebPartZone1.WebParts.Count > 1 Then
      Dim cal As WebPart = WebPartZone1.WebParts(1)
      If cal.Controls(0).GetType().Name = "Calendar" AndAlso _
        cal IsNot Nothing Then
        WebPartManager1.DeleteWebPart(cal)
      End If
    End If
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Adding a Server Control</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="WebPartManager1" 
        runat="server" />
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList  
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:Button ID="Button1" runat="server" 
        Text="Delete Calendar" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Add Calendar" 
        OnClick="Button2_Click" />
    </div>
    </form>
</body>
</html>

Keterangan

Metode ini CreateWebPart adalah mekanisme utama untuk mengaktifkan kontrol server yang tidak WebPart mengontrol untuk mengambil fungsionalitas yang sama dengan WebPart kontrol, dan dengan demikian untuk berpartisipasi sepenuhnya dalam aplikasi Bagian Web. Dengan menggunakan metode ini, pengembang sangat memperluas jumlah kontrol server yang dapat mereka gunakan dalam aplikasi Bagian Web, karena hampir semua jenis kontrol server--standar ASP.NET kontrol, kontrol pengguna, dan kontrol kustom--dapat digunakan.

Kontrol WebPartManager juga menggunakan metode ini dalam dua skenario lain untuk membungkus kontrol server dengan GenericWebPart objek . Ketika pengguna menambahkan kontrol server ke halaman dengan menggunakan ImportCatalogPart kontrol , jika kontrol yang WebPart diimpor bukan kontrol, CreateWebPart metode dipanggil. Selain itu, ketika kontrol server dinyatakan dalam format persistensi dalam WebPartZoneBase zona pada halaman Web, CreateWebPart metode ini dipanggil untuk kontrol apa pun yang bukan WebPart kontrol.

Ketika Anda menambahkan kontrol server ke zona secara terprogram, pendekatan umumnya adalah menggunakan CreateWebPart metode untuk membungkus kontrol dengan GenericWebPart objek, lalu memanggil AddWebPart metode untuk menambahkan kontrol ke koleksi semua WebPart kontrol di halaman, yang dirujuk oleh WebParts properti .

Catatan Bagi Inheritor

Metode ini dapat ditimpa untuk menggunakan kelas turunan GenericWebPart alih-alih kelas dasar yang disediakan dengan set kontrol Bagian Web.

Berlaku untuk

Lihat juga