Поделиться через


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

webPart Добавляемый WebPartZoneBase объект.

zoneIndex
Int32

Целое число, представляющее порядковое положение, webPart которое занимает в zone, относительно других элементов управления.zone

Возвращаемое значение

Элемент WebPart управления, добавленный на страницу.

Исключения

webPart равно null.

–или–

zone равно null.

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 ссылается параметр.

Это важно

Этот метод всегда следует использовать AddWebPart , а не Add метод коллекции элементов управления, на которые WebPartManager.Controls ссылается свойство, для программного добавления WebPart элементов управления на страницу, так как при использовании Add метода возникает исключение. Чтобы добавить элемент управления, который не WebPart является элементом управления (другими словами, серверный элемент управления, который будет упакован с GenericWebPart элементом управления во время выполнения), необходимо сначала вызвать CreateWebPart метод для создания элемента управления, а затем вызвать AddWebPart метод для добавления элемента управления. Демонстрация этого подхода см. в разделе "Пример".

Применяется к

См. также раздел