WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Methode

Definitie

Biedt de standaardprogrammatische methode voor het toevoegen van WebPart besturingselementen aan een webpagina.

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

Parameters

webPart
WebPart

Het WebPart (of server- of gebruikersbeheer) dat moet worden toegevoegd aan een webpagina of wordt geopend op een pagina.

zone
WebPartZoneBase

webPart Het WebPartZoneBase dat wordt toegevoegd aan.

zoneIndex
Int32

Een geheel getal dat de rangtelpositie vertegenwoordigt waarin webPartzone, ten opzichte van andere besturingselementen in zone.

Retouren

Een WebPart besturingselement dat is toegevoegd aan de pagina.

Uitzonderingen

webPart is null.

– of –

zone is null.

zone is niet geregistreerd in de verzameling zones van het WebPartManager besturingselement.

– of –

webPart bevindt zich al in zone.

De waarde van zoneIndex is kleiner dan nul.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de AddWebPart methode gebruikt om programmatisch een serverbesturing toe te voegen aan een pagina. De paginamarkeringen bevatten een leeg <asp:webpartzone> element en een <asp:webpartmanager> element. De eerste keer dat op de knop Agenda toevoegen wordt geklikt, wordt met de code in de gebeurtenis-handler een Calendar besturingselement gemaakt en toegevoegd aan een zone als object GenericWebPart , waarbij de methode wordt AddWebPart aangeroepen.

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

Opmerkingen

De AddWebPart methode wordt gebruikt om nieuwe dynamische WebPart besturingselementen toe te voegen aan een pagina en om statische of dynamische besturingselementen die eerder op een pagina zijn gesloten, opnieuw te openen. Wanneer de methode wordt aangeroepen om een nieuw besturingselement toe te voegen, wordt er daadwerkelijk een kopie gemaakt van het besturingselement waarnaar in de webPart parameter wordt verwezen. Er wordt een nieuwe id gegenereerd voor de kopie van het besturingselement, dus ontwikkelaars moeten verwijzen naar het WebPart besturingselement dat is geretourneerd door de methode om de nieuwe id-waarde op te halen. Wanneer de methode wordt aangeroepen om een eerder gesloten besturingselement opnieuw te openen, retourneert deze een directe verwijzing naar het besturingselement waarnaar wordt verwezen door de webPart parameter.

Important

U moet altijd de AddWebPart methode gebruiken, in plaats van de Add methode van de verzameling besturingselementen waarnaar wordt verwezen door de WebPartManager.Controls eigenschap, om besturingselementen programmatisch toe te voegen WebPart aan de pagina, omdat het gebruik van de Add methode een uitzondering genereert. Als u een besturingselement wilt toevoegen dat geen WebPart besturingselement is (met andere woorden, een serverbesturing die tijdens runtime wordt verpakt met een GenericWebPart besturingselement), moet u eerst de CreateWebPart methode aanroepen om het besturingselement te maken en vervolgens de AddWebPart methode aanroepen om het besturingselement toe te voegen. Zie de sectie Voorbeeld voor een demonstratie van deze benadering.

Van toepassing op

Zie ook