WebPartManager.AddWebPart(WebPart, WebPartZoneBase, Int32) Metodo

Definizione

Fornisce il metodo standard a livello di codice per aggiungere controlli WebPart a una pagina Web.

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

Parametri

webPart
WebPart

Oggetto WebPart (oppure controllo server o controllo utente) da aggiungere a una pagina Web o da aprire in una pagina.

zone
WebPartZoneBase

Classe WebPartZoneBase a cui viene aggiunto webPart.

zoneIndex
Int32

Integer che rappresenta la posizione ordinale occupata dall'oggetto webPart in zone, relativa ad altri controlli presenti in zone.

Restituisce

WebPart

Controllo WebPart aggiunto alla pagina.

Eccezioni

webPart è null.

-oppure- zone è null.

zone non è registrato nell'insieme delle aree del controllo WebPartManager.

-oppure- webPart è già in zone.

Il valore di zoneIndex è minore di zero.

Esempio

Nell'esempio di codice seguente viene illustrato l'uso AddWebPart del metodo per aggiungere un controllo server a livello di codice a una pagina. Il markup della pagina contiene un elemento vuoto <asp:webpartzone> e un <asp:webpartmanager> elemento . La prima volta che si fa clic sul pulsante Aggiungi calendario , il codice nel gestore eventi crea un Calendar controllo e lo aggiunge a una zona come GenericWebPart oggetto, chiamando il AddWebPart metodo .

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

Commenti

Il AddWebPart metodo viene usato sia per aggiungere nuovi controlli dinamici WebPart a una pagina che per riaprire controlli statici o dinamici chiusi in precedenza in una pagina. Quando viene chiamato il metodo per aggiungere un nuovo controllo, viene effettivamente creata una copia del controllo a cui si fa riferimento nel webPart parametro . Viene generato un nuovo ID per la copia del controllo, quindi gli sviluppatori devono fare riferimento al WebPart controllo restituito dal metodo per ottenere il nuovo valore ID. Quando il metodo viene chiamato per riaprire un controllo chiuso in precedenza, restituisce un riferimento diretto al controllo a cui fa riferimento il webPart parametro .

Importante

È consigliabile usare sempre il AddWebPart metodo , anziché il Add metodo dell'insieme di controlli a cui fa riferimento la WebPartManager.Controls proprietà , per aggiungere WebPart controlli a livello di codice alla pagina, perché l'utilizzo del Add metodo genera un'eccezione. Per aggiungere un controllo che non è un WebPart controllo , ovvero un controllo server di cui verrà eseguito il wrapping con un GenericWebPart controllo in fase di esecuzione, è necessario chiamare prima il CreateWebPart metodo per creare il controllo e quindi chiamare il AddWebPart metodo per aggiungere il controllo. Per una dimostrazione di questo approccio, vedere la sezione Esempio.

Si applica a

Vedi anche