WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 , zone
relatif terhadap kontrol lain di zone
.
Mengembalikan
WebPart Kontrol yang ditambahkan ke halaman.
Pengecualian
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.