WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Metoda

Definice

Poskytuje standardní programovou metodu pro přidání WebPart ovládacích prvků na webovou stránku.

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

Parametry

webPart
WebPart

Server WebPart nebo uživatelský ovládací prvek, který se má přidat na webovou stránku nebo otevřít na stránce.

zone
WebPartZoneBase

Do WebPartZoneBase kterého webPart se přidává.

zoneIndex
Int32

Celé číslo, které představuje pořadové umístění, které webPart zabírá zone, vzhledem k jiným ovládacím prvkům v zone.

Návraty

Ovládací WebPart prvek, který byl přidán na stránku.

Výjimky

webPart je null.

nebo

zone je null.

zone není registrován v kolekci WebPartManager zón ovládacího prvku.

nebo

webPart je již v zone.

Hodnota zoneIndex je menší než nula.

Příklady

Následující příklad kódu ukazuje použití AddWebPart metody k přidání ovládacího prvku serveru programově na stránku. Kód stránky obsahuje prázdný <asp:webpartzone> prvek a <asp:webpartmanager> prvek. Při prvním kliknutí na tlačítko Přidat kalendář vytvoří kód v obslužné rutině Calendar události ovládací prvek a přidá ho do zóny jako GenericWebPart objekt, který volá metodu 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>

Poznámky

Metoda AddWebPart slouží k přidání nových dynamických WebPart ovládacích prvků na stránku a k opětovnému otevření statických nebo dynamických ovládacích prvků, které byly dříve zavřeny na stránce. Když je volána metoda pro přidání nového ovládacího prvku, ve skutečnosti vytvoří kopii ovládacího prvku odkazovaného v parametru webPart . Pro kopii ovládacího prvku se vygeneruje nové ID, takže vývojáři by měli odkazovat na WebPart ovládací prvek vrácený z metody, aby získali novou hodnotu ID. Když je volána metoda pro opětovné otevření dříve uzavřeného ovládacího prvku, vrátí přímý odkaz na ovládací prvek odkazovaný parametrem webPart .

Important

K programovému přidání AddWebPart ovládacích prvků na stránku byste měli vždy použít Add metodu, nikoli WebPartManager.Controls metodu kolekce ovládacích prvků odkazovaných vlastnostíWebPart, protože použití Add metody vyvolá výjimku. Chcete-li přidat ovládací prvek, který není WebPart ovládací prvek (jinými slovy, serverový ovládací prvek, který bude zabalen ovládací GenericWebPart prvek v době běhu), měli byste nejprve volat metodu CreateWebPart pro vytvoření ovládacího prvku a potom volat metodu AddWebPart pro přidání ovládacího prvku. Ukázku tohoto přístupu najdete v části Příklad.

Platí pro

Viz také