Sdílet prostřednictvím


WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Metoda

Definice

Přesune serverový WebPart ovládací prvek nebo z jedné WebPartZoneBase zóny do jiné nebo na novou pozici v rámci stejné zóny.

public:
 virtual void MoveWebPart(System::Web::UI::WebControls::WebParts::WebPart ^ webPart, System::Web::UI::WebControls::WebParts::WebPartZoneBase ^ zone, int zoneIndex);
public virtual void MoveWebPart (System.Web.UI.WebControls.WebParts.WebPart webPart, System.Web.UI.WebControls.WebParts.WebPartZoneBase zone, int zoneIndex);
abstract member MoveWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> unit
override this.MoveWebPart : System.Web.UI.WebControls.WebParts.WebPart * System.Web.UI.WebControls.WebParts.WebPartZoneBase * int -> unit
Public Overridable Sub MoveWebPart (webPart As WebPart, zone As WebPartZoneBase, zoneIndex As Integer)

Parametry

webPart
WebPart

Přesouvání WebPart ovládacího prvku serveru nebo jiného ovládacího prvku serveru

zone
WebPartZoneBase

Cíl WebPartZoneBase , do kterého webPart se přesouvá.

zoneIndex
Int32

Celé číslo, které označuje index relativní k webPart jiným ovládacím prvkům v rámci zone.

Výjimky

webPart není obsažena v kolekci ControlsWebPartManager ovládacího prvku.

-nebo-

zone není obsažena v kolekci ZonesWebPartManager ovládacího prvku.

-nebo-

Zóna, na kterou webPart odkazuje vlastnost ovládacího prvku Zone , je null, což znamená, že webPart tato zóna aktuálně není obsažena.

webPart nebo zone je null.

Hodnota zoneIndex je menší než nula.

Příklady

Následující příklad kódu ukazuje, jak volat metodu MoveWebPart přímo z kódu k přesunutí WebPart ovládacího prvku z jedné zóny do jiné.

Příklad kódu má tři části:

  • Uživatelský ovládací prvek pro změnu režimů zobrazení.

  • Webová stránka pro hostování ovládacích prvků.

  • Vysvětlení, jak spustit příklad kódu.

První část příkladu kódu je uživatelský ovládací prvek pro změnu režimů zobrazení. Zdrojový kód pro uživatelský ovládací prvek můžete získat v části Příklad přehledu WebPartManager třídy. Další informace o režimech zobrazení a o tom, jak funguje uživatelský ovládací prvek, naleznete v tématu Návod: Změna režimů zobrazení na stránce webových částí.

Druhá část příkladu je webová stránka, která obsahuje dvě zóny, z nichž každá obsahuje dva serverové ovládací prvky. Když uživatel klikne na tlačítko Přesunout webovou část na stránce, kód v Button1_Click metodě přesune ovládací prvek z první zóny na novou pozici ve druhé zóně. Všimněte si, že kód musí nejprve volat metodu GetGenericWebPart pro načtení objektu GenericWebPart , který zabalí list1 ovládací prvek. To je povinné, protože první parametr MoveWebPart metody vyžaduje WebPart ovládací prvek, zatímco list1 je ASP.NET serverový ovládací prvek.

<%@ Page Language="C#" %>
<%@ Register TagPrefix="uc1" 
    TagName="DisplayModeMenuCS"
    Src="~/displaymodemenucs.ascx" %>

<!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 Button1_Click(object sender, EventArgs e)
  {
    GenericWebPart part = mgr1.GetGenericWebPart(list1);
    mgr1.MoveWebPart(part, zone2, zone2.WebParts.Count - 1);
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <uc1:DisplayModeMenuCS ID="menu1" runat="server" />
      <asp:WebPartZone ID="zone1" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label1" runat="server" 
            Text="My Navigation" 
            Title="Zone 1 Label"/>
          <asp:BulletedList 
            ID="list1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links"
            AuthorizationFilter="admin">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>        
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:WebPartZone ID="zone2" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label2" runat="server" 
            Text="My Data" 
            Title="Zone 2 Label"/>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar"/>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Move WebPart" 
        OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ Register TagPrefix="uc1" 
    TagName="DisplayModeMenuVB"
    Src="~/displaymodemenuvb.ascx" %>

<!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 Button1_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)

    Dim part As GenericWebPart = mgr1.GetGenericWebPart(list1)
    mgr1.MoveWebPart(part, zone2, zone2.WebParts.Count - 1)
    
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:WebPartManager ID="mgr1" runat="server" />
      <uc1:DisplayModeMenuVB ID="menu1" runat="server" />
      <asp:WebPartZone ID="zone1" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label1" runat="server" 
            Text="My Navigation" 
            Title="Zone 1 Label"/>
          <asp:BulletedList 
            ID="list1" 
            Runat="server"
            DisplayMode="HyperLink" 
            Title="Favorite Links"
            AuthorizationFilter="admin">
            <asp:ListItem Value="http://msdn.microsoft.com">
              MSDN
            </asp:ListItem>
            <asp:ListItem Value="http://www.asp.net">
              ASP.NET
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
              MSN
            </asp:ListItem>
          </asp:BulletedList>        
        </ZoneTemplate>
      </asp:WebPartZone>
      <asp:WebPartZone ID="zone2" runat="server">
        <ZoneTemplate>
          <asp:Label ID="Label2" runat="server" 
            Text="My Data" 
            Title="Zone 2 Label"/>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar"/>
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="Move WebPart" 
        OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>

Po načtení stránky klikněte na tlačítko Přesunout webovou část a všimněte si, že ovládací prvek, který obsahuje odkazy, se přesune do prostřední pozice ve druhé zóně. Tento přesun ovládacího prvku se provádí programově voláním MoveWebPart metody . Můžete také použít ovládací prvek rozevíracího seznamu Režim zobrazení a přepnout stránku do režimu návrhu a v režimu návrhu můžete ovládací prvky přetáhnout do různých zón nebo různých umístění v rámci jejich zón. Metoda MoveWebPart je také volána ovládacím WebPartManager prvku pro zpracování takových přesunů iniciovaných uživatelem.

Poznámky

Ovládací WebPartManager prvek používá metodu MoveWebPart k přesunu webPart do nového umístění ve stejné zóně nebo v jiné zóně. Tuto metodu můžete volat přímo z kódu a je také vyvolána, když uživatel přesune ovládací prvek na novou pozici pomocí různých možností v uživatelském rozhraní (UI) webových částí.

Před přesunutím je nutné splnit webPart řadu podmínek. Většina z nich je označená položkami uvedenými v části Výjimky tohoto tématu. Pokud webPart nebyla na začátku obsažena v WebPartZoneBase zóně, nelze ji do zóny přesunout.

Po splnění podmínek proběhne následující posloupnost akcí pro přesun webPart:

  1. Metoda OnWebPartMoving vyvolá WebPartMoving událost.

  2. webPart se odebere ze své aktuální zóny (pokud je to nutné) a přidá se do nové zóny nebo do nové pozice v rámci aktuální zóny.

  3. Metoda OnWebPartMoved vyvolá WebPartMoved událost.

  4. WebPart Všechny zoneIndex ovládací prvky v původní i cílové zóně se resetují tak, aby odrážely přesunutý ovládací prvek.

Platí pro

Viz také