WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Methode

Definition

Stellt die programmgesteuerte Standardmethode zum Hinzufügen von WebPart-Steuerelementen auf einer Webseite bereit.

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

Der WebPart (bzw. das Server- oder Benutzersteuerelement), der einer Webseite hinzugefügt oder auf einer Seite geöffnet werden soll.

zone
WebPartZoneBase

Die WebPartZoneBase, der webPart hinzugefügt wird.

zoneIndex
Int32

Eine ganze Zahl, die die Ordinalposition darstellt, an der sich webPart in zone im Verhältnis zu anderen Steuerelementen in zone befindet.

Gibt zurück

WebPart

Ein WebPart-Steuerelement, das der Seite hinzugefügt wurde.

Ausnahmen

webPart ist null.

- oder - zone ist null.

zone wird nicht in der Auflistung der Zonen des WebPartManager-Steuerelements registriert.

- oder - webPart befindet sich bereits in zone.

Der Wert von zoneIndex beträgt weniger als 0 (null).

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung der AddWebPart Methode zum programmgesteuerten Hinzufügen eines Serversteuerelements zu einer Seite. Das Seitenmarkup enthält ein leeres <asp:webpartzone> Element und ein <asp:webpartmanager> Element. Wenn die Schaltfläche "Kalender hinzufügen " zum ersten Mal geklickt wird, erstellt der Code im Ereignishandler ein Calendar Steuerelement, und fügt es zu einer Zone als GenericWebPart Objekt hinzu, indem die AddWebPart Methode aufgerufen wird.

<%@ 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>

Hinweise

Die AddWebPart Methode wird sowohl zum Hinzufügen neuer dynamischer WebPart Steuerelemente zu einer Seite verwendet, als auch zum Öffnen statischer oder dynamischer Steuerelemente, die zuvor auf einer Seite geschlossen wurden. Wenn die Methode aufgerufen wird, um ein neues Steuerelement hinzuzufügen, erstellt sie tatsächlich eine Kopie des Steuerelements, auf das webPart im Parameter verwiesen wird. Eine neue ID wird für die Kopie des Steuerelements generiert, sodass Entwickler auf das aus der Methode zurückgegebene Steuerelement verweisen sollten, um den WebPart neuen ID-Wert abzurufen. Wenn die Methode aufgerufen wird, um ein zuvor geschlossenes Steuerelement erneut zu öffnen, wird ein direkter Verweis auf das webPart Steuerelement zurückgegeben, das vom Parameter verwiesen wird.

Wichtig

Sie sollten die Methode immer verwenden, anstatt Add die Methode der Auflistung von Steuerelementen, auf die AddWebPart von WebPartManager.Controls der Eigenschaft verwiesen wird, zu verwenden, um Steuerelemente programmgesteuert zur Seite hinzuzufügenWebPart, da die Verwendung der Add Methode eine Ausnahme auslöst. Um ein Steuerelement hinzuzufügen, das kein WebPart Steuerelement ist (d. h. ein Serversteuerelement, das zur Laufzeit mit einem GenericWebPart Steuerelement umgebrochen wird), sollten Sie zuerst die CreateWebPart Methode aufrufen, um das Steuerelement zu erstellen, und dann die AddWebPart Methode aufrufen, um das Steuerelement hinzuzufügen. Eine Demonstration dieses Ansatzes finden Sie im Abschnitt "Beispiel".

Gilt für

Siehe auch