Bagikan melalui


WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Metode

Definisi

WebPart Memindahkan kontrol server atau dari satu WebPartZoneBase zona ke zona lain, atau ke posisi baru dalam zona yang sama.

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)

Parameter

webPart
WebPart

WebPart Kontrol server atau lainnya sedang dipindahkan.

zone
WebPartZoneBase

Target WebPartZoneBase yang webPart dipindahkan.

zoneIndex
Int32

Bilangan bulat yang menunjukkan indeks relatif terhadap webPart kontrol lain dalam zone.

Pengecualian

webPart tidak terkandung dalam Controls kumpulan WebPartManager kontrol.

-atau-

zone tidak terkandung dalam Zones kumpulan WebPartManager kontrol.

-atau-

Zona yang direferensikan webPart oleh properti kontrol Zone adalah null, yang berarti saat webPart ini tidak terkandung dalam zona.

webPart atau zone adalah null.

zoneIndex kurang dari nol.

Contoh

Contoh kode berikut menunjukkan cara memanggil MoveWebPart metode langsung dari kode untuk memindahkan WebPart kontrol dari satu zona ke zona lainnya.

Contoh kode memiliki tiga bagian:

  • Kontrol pengguna untuk mengubah mode tampilan.

  • Halaman Web untuk menghosting kontrol.

  • Penjelasan tentang cara menjalankan contoh kode.

Bagian pertama dari contoh kode adalah kontrol pengguna untuk mengubah mode tampilan. Anda dapat memperoleh kode sumber untuk kontrol pengguna dari bagian Contoh dari WebPartManager gambaran umum kelas. Untuk informasi selengkapnya tentang mode tampilan dan cara kerja kontrol pengguna, lihat Panduan: Mengubah Mode Tampilan pada Halaman Bagian Web.

Bagian kedua dari contoh adalah halaman Web yang berisi dua zona, yang masing-masing berisi dua kontrol server. Saat pengguna mengklik tombol Pindahkan WebPart pada halaman, kode dalam Button1_Click metode memindahkan kontrol dari zona pertama ke posisi baru di zona kedua. Perhatikan bahwa kode terlebih dahulu harus memanggil GetGenericWebPart metode untuk mengambil GenericWebPart objek yang membungkus list1 kontrol. Ini diperlukan karena parameter MoveWebPart pertama metode memerlukan WebPart kontrol, sedangkan list1 adalah kontrol server ASP.NET.

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

Setelah halaman dimuat, klik tombol Pindahkan WebPart , dan perhatikan bahwa kontrol yang berisi tautan berpindah ke posisi tengah di zona kedua. Gerakan kontrol ini dicapai secara terprogram dengan memanggil MoveWebPart metode . Anda juga dapat menggunakan kontrol daftar drop-down Mode Tampilan untuk mengalihkan halaman ke mode desain, dan dalam mode desain, Anda dapat menyeret kontrol ke zona yang berbeda atau posisi yang berbeda dalam zonanya. Metode MoveWebPart ini juga dipanggil oleh kontrol untuk menangani langkah yang dimulai pengguna tersebut WebPartManager .

Keterangan

Kontrol WebPartManager menggunakan MoveWebPart metode untuk berpindah webPart ke lokasi baru di zona yang sama, atau di zona yang berbeda. Anda dapat memanggil metode ini langsung dari kode, dan juga dipanggil ketika pengguna memindahkan kontrol ke posisi baru menggunakan berbagai opsi di antarmuka pengguna (UI) Komponen Web.

Sejumlah kondisi harus dipenuhi sebelum webPart dapat dipindahkan, dan sebagian besar ditunjukkan oleh item yang tercantum di bagian Pengecualian dari topik ini. Jika webPart tidak terkandung dalam WebPartZoneBase zona untuk memulai, zona tersebut tidak dapat dipindahkan ke zona.

Setelah kondisi terpenuhi, urutan tindakan berikut terjadi untuk memindahkan webPart:

  1. Metode ini OnWebPartMoving meningkatkan WebPartMoving peristiwa.

  2. webPart dihapus dari zonanya saat ini (jika perlu), dan ditambahkan ke zona baru atau posisi baru dalam zonanya saat ini.

  3. Metode ini OnWebPartMoved meningkatkan WebPartMoved peristiwa.

  4. zoneIndex Dari setiap WebPart kontrol di zona asal dan tujuan diatur ulang untuk mencerminkan kontrol yang dipindahkan.

Berlaku untuk

Lihat juga