Bagikan melalui


WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Metode

Definisi

Menyediakan metode terprogram standar untuk menambahkan WebPart kontrol ke halaman Web.

public:
 System::Web::UI::WebControls::WebParts::WebPart ^ AddWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public System.Web.UI.WebControls.WebParts.WebPart AddWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
member this.AddWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> System.Web.UI.WebControls.WebParts.WebPart
Public Function AddWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer) As WebPart

Parameter

webPart
WebPart

WebPart (atau kontrol server atau pengguna) yang akan ditambahkan ke halaman Web atau dibuka pada halaman.

zone
WebPartZoneBase

yang WebPartZoneBasewebPart sedang ditambahkan ke.

zoneIndex
Int32

Bilangan bulat yang mewakili posisi ordinal yang webPart menempati , zonerelatif terhadap kontrol lain di zone.

Mengembalikan

WebPart Kontrol yang ditambahkan ke halaman.

Pengecualian

webPartadalah null.

-atau-

zoneadalah null.

zone tidak terdaftar dalam WebPartManager kumpulan zona kontrol.

-atau-

webPart sudah ada di zone.

Nilai kurang dari zoneIndex nol.

Contoh

Contoh kode berikut menunjukkan penggunaan AddWebPart metode untuk menambahkan kontrol server secara terprogram ke halaman. Markup halaman berisi elemen kosong <asp:webpartzone> , dan <asp:webpartmanager> elemen . Pertama kali tombol Tambahkan Kalender diklik, kode di penanganan aktivitas membuat Calendar kontrol, dan menambahkannya ke zona sebagai GenericWebPart objek, memanggil AddWebPart metode .

<%@ 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 AddWebPart ini digunakan baik untuk menambahkan kontrol dinamis WebPart baru ke halaman, dan untuk membuka kembali kontrol statis atau dinamis yang sebelumnya telah ditutup pada halaman. Ketika metode dipanggil untuk menambahkan kontrol baru, metode tersebut benar-benar membuat salinan kontrol yang dirujuk dalam webPart parameter . ID baru dibuat untuk salinan kontrol, sehingga pengembang harus mereferensikan kontrol yang WebPart dikembalikan dari metode untuk mendapatkan nilai ID baru. Ketika metode dipanggil untuk membuka kembali kontrol yang sebelumnya ditutup, metode mengembalikan referensi langsung ke kontrol yang direferensikan webPart oleh parameter .

Penting

Anda harus selalu menggunakan AddWebPart metode , daripada Add metode pengumpulan kontrol yang direferensikan oleh WebPartManager.Controls properti , untuk menambahkan WebPart kontrol secara terprogram ke halaman, karena menggunakan Add metode melemparkan pengecualian. Untuk menambahkan kontrol yang bukan WebPart kontrol (dengan kata lain, kontrol server yang akan dibungkus dengan GenericWebPart kontrol pada durasi), Anda harus terlebih dahulu memanggil CreateWebPart metode untuk membuat kontrol, lalu memanggil AddWebPart metode untuk menambahkan kontrol. Untuk demonstrasi pendekatan ini, lihat bagian Contoh.

Berlaku untuk

Lihat juga