WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет стандартный программный метод для добавления элементов управления на веб-странице WebPart.
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
Параметры
- webPart
- WebPart
Объект WebPart (или серверный или пользовательский элемент управления), который необходимо добавить на веб-страницу или открыть на странице.
- zone
- WebPartZoneBase
WebPartZoneBase, в которую добавляется webPart
.
- zoneIndex
- Int32
Целое число, представляющее порядковый номер позиции, которую webPart
занимает в zone
относительно других элементов управления в zone
.
Возвращаемое значение
Элемент управления WebPart, который был добавлен на страницу.
Исключения
zone
не зарегистрирован в коллекции зон элемента управления WebPartManager.
-или-
Параметр webPart
уже находится в zone
.
Значение параметра zoneIndex
меньше нуля.
Примеры
В следующем примере кода показано использование метода для программного AddWebPart добавления серверного элемента управления на страницу. Разметка страницы содержит пустой <asp:webpartzone>
элемент и <asp:webpartmanager>
элемент . При первом нажатии кнопки Добавить календарь код в обработчике событий создает Calendar элемент управления и добавляет его в зону как GenericWebPart объект , вызывая AddWebPart метод .
<%@ 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>
Комментарии
Метод AddWebPart используется как для добавления новых динамических WebPart элементов управления на страницу, так и для повторного открытия статических или динамических элементов управления, которые ранее были закрыты на странице. При вызове метода для добавления нового элемента управления он фактически создает копию элемента управления, на который ссылается webPart
параметр . Для копии элемента управления создается новый идентификатор, поэтому разработчики должны ссылаться на WebPart элемент управления, возвращенный методом , чтобы получить новое значение идентификатора. При вызове метода для повторного открытия ранее закрытого элемента управления он возвращает прямую ссылку на элемент управления, на который ссылается webPart
параметр .
Важно!
Для программного добавления WebPart элементов управления на страницу AddWebPart следует использовать метод , а не Add метод коллекции элементов управления, на которые ссылается WebPartManager.Controls свойство .Add Чтобы добавить элемент управления, который не является элементом WebPart управления (другими словами, серверный элемент управления, который будет упакован с элементом GenericWebPart управления во время выполнения), необходимо сначала вызвать CreateWebPart метод для создания элемента управления, а затем вызвать AddWebPart метод для добавления элемента управления. Демонстрацию этого подхода см. в разделе Пример.