WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przenosi kontrolkę WebPart serwera lub z jednej WebPartZoneBase strefy do innej lub do nowej pozycji w tej samej strefie.
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
- zone
- WebPartZoneBase
Obiekt docelowy WebPartZoneBase , do którego webPart
jest przenoszony.
- zoneIndex
- Int32
Liczba całkowita wskazująca indeks webPart
względem innych kontrolek w obiekcie zone
.
Wyjątki
webPart
nie jest zawarta Controls w kolekcji kontrolki WebPartManager .
-lub-
zone
nie jest zawarta Zones w kolekcji kontrolki WebPartManager .
-lub-
Strefa, webPart
do której odwołuje się właściwość kontrolki Zone , to null
, co oznacza, że webPart
nie znajduje się obecnie w strefie.
webPart
lub zone
to null
.
Parametr zoneIndex
ma wartość niższą niż zero.
Przykłady
W poniższym przykładzie kodu pokazano, jak wywołać metodę MoveWebPart bezpośrednio z kodu, aby przenieść kontrolkę WebPart z jednej strefy do innej.
Przykładowy kod ma trzy części:
Kontrolka użytkownika do zmieniania trybów wyświetlania.
Strona sieci Web do hostowania kontrolek.
Wyjaśnienie sposobu uruchamiania przykładu kodu.
Pierwszą częścią przykładu kodu jest kontrolka użytkownika do zmieniania trybów wyświetlania. Kod źródłowy kontrolki użytkownika można uzyskać z sekcji Przykład w przeglądzie WebPartManager klasy. Aby uzyskać więcej informacji na temat trybów wyświetlania i sposobu działania kontrolki użytkownika, zobacz Przewodnik: zmienianie trybów wyświetlania na stronie składników Web Part.
Druga część przykładu to strona sieci Web zawierająca dwie strefy, z których każda zawiera dwie kontrolki serwera. Gdy użytkownik kliknie przycisk Przenieś składnik Web Part na stronie, kod w Button1_Click
metodzie przenosi kontrolkę z pierwszej strefy do nowej pozycji w drugiej strefie. Zwróć uwagę, że kod najpierw musi wywołać metodę GetGenericWebPart , aby pobrać GenericWebPart obiekt, który opakowuje kontrolkę list1
. Jest to wymagane, ponieważ pierwszy parametr MoveWebPart metody wymaga WebPart kontrolki, natomiast list1
jest ASP.NET kontroli serwera.
<%@ 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 załadowaniu strony kliknij przycisk Przenieś składnik Web Part i zwróć uwagę, że kontrolka zawierająca linki przechodzi do pozycji środkowej w drugiej strefie. Ten ruch kontrolki jest osiągany programowo przez wywołanie MoveWebPart metody . Możesz również użyć kontrolki listy rozwijanej Tryb wyświetlania , aby przełączyć stronę do trybu projektowania, a w trybie projektowania można przeciągnąć kontrolki do różnych stref lub różnych pozycji w ich strefach. Metoda jest również wywoływana MoveWebPart przez kontrolkę WebPartManager do obsługi takich ruchów zainicjowanych przez użytkownika.
Uwagi
Kontrolka WebPartManager używa MoveWebPart metody do przejścia webPart
do nowej lokalizacji w tej samej strefie lub w innej strefie. Tę metodę można wywołać bezpośrednio z kodu i jest również wywoływana, gdy użytkownik przenosi kontrolkę do nowej pozycji przy użyciu różnych opcji w interfejsie użytkownika składników Web Part.
Przed przeniesieniem należy spełnić webPart
wiele warunków, a większość z nich jest wskazywana przez elementy wymienione w sekcji Wyjątki tego tematu. Jeśli webPart
nie został zawarty w WebPartZoneBase strefie, od której chcesz zacząć, nie można go przenieść do strefy.
Po spełnieniu warunków następuje przeniesienie następującej sekwencji akcji webPart
:
Metoda OnWebPartMoving zgłasza WebPartMoving zdarzenie.
webPart
jest usuwany z bieżącej strefy (w razie potrzeby) i dodany do nowej strefy lub nowej pozycji w bieżącej strefie.Metoda OnWebPartMoved zgłasza WebPartMoved zdarzenie.
Każda WebPart kontrolka
zoneIndex
w strefach źródłowych i docelowych jest resetowany, aby odzwierciedlić przeniesioną kontrolkę.