WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Metoda

Definice

Přesune ovládací prvek WebPart serveru 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á se WebPart ovládací prvek serveru nebo jiný.

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žen v kolekci ControlsWebPartManager ovládacího prvku.

-nebo-

zone není obsažen 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 v současnosti není obsažena v zóně.

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 pro přesun 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 fungování uživatelského ovládacího prvku najdete v tématu Návod: Změna režimů zobrazení na stránce webových částí.

Druhou čá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 nové místo ve druhé zóně. Všimněte si, že kód musí nejprve volat metodu GetGenericWebPart pro načtení objektu GenericWebPart , který obtéká 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 pohyb ovládacího prvku se provádí programově voláním MoveWebPart metody. Pomocí ovládacího prvku rozevíracího seznamu Režim zobrazení můžete také 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 jejich zónách. Metoda MoveWebPart je také volána ovládacím prvku pro zpracování takových přesunů iniciovaných uživatelem WebPartManager .

Poznámky

Ovládací WebPartManager prvek používá metodu MoveWebPart k přesunutí 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 nové místo pomocí různých možností v uživatelském rozhraní 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 v tomto tématu. Pokud webPart nebylo v WebPartZoneBase zóně na začátku obsaženo, nelze ji do zóny přesunout.

Po splnění podmínek se provede 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 (v případě potřeby) a přidá se do nové zóny nebo nové pozice v rámci aktuální zóny.

  3. Metoda OnWebPartMoved vyvolá WebPartMoved událost.

  4. Každý zoneIndex ovládací WebPart prvek v původní i cílové zóně se resetuje tak, aby odrážel přesunutý ovládací prvek.

Platí pro

Viz také