Sdílet prostřednictvím


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

Ovládací WebPart prvek (nebo server nebo uživatel), který se má přidat na webovou stránku nebo otevřít na stránce.

zone
WebPartZoneBase

Ten WebPartZoneBase , do kterého webPart se přidává.

zoneIndex
Int32

Celé číslo, které představuje řadovou pozici, která webPart zabírá v , vzhledem k jiným ovládacím prvkům v zonezone.

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í zaregistrovaný v kolekci WebPartManager zón ovládacího prvku.

-nebo-

webPart je již v zonesystému .

Hodnota zoneIndex je menší než nula.

Příklady

Následující příklad kódu ukazuje použití AddWebPart metody k programovému přidání serverového ovládacího prvku na stránku. Značka stránky obsahuje prázdný <asp:webpartzone> prvek a <asp:webpartmanager> element. Při prvním kliknutí na tlačítko Přidat kalendář vytvoří kód v obslužné rutině události ovládací prvek Calendar 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 se používá 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 na stránce uzavřeny. Při volání metody 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ý metodou, aby získali novou hodnotu ID. Při volání metody znovu otevřít dříve uzavřený ovládací prvek, vrátí přímý odkaz na ovládací prvek odkazovaný parametrem webPart .

Důležité

K programovému AddWebPart přidání WebPart ovládacích prvků na stránku byste měli vždy použít metodu, nikoli metodu Add kolekce ovládacích prvků, na kterou WebPartManager.Controls odkazuje vlastnost, protože použití Add metody vyvolá výjimku. Chcete-li přidat ovládací prvek, který není ovládací prvek WebPart (jinými slovy, serverový ovládací prvek, který bude za běhu zabalen s ovládacím GenericWebPart prvek), měli byste nejprve volat metodu CreateWebPart k vytvoření ovládacího prvku a pak 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é