Share via


WebPartManager.MoveWebPart(WebPart, WebPartZoneBase, Int32) Yöntem

Tanım

Bir veya sunucu denetimini bir WebPart bölgeden diğerine WebPartZoneBase veya aynı bölge içinde yeni bir konuma taşır.

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)

Parametreler

webPart
WebPart

Taşınan WebPart veya başka bir sunucu denetimi.

zone
WebPartZoneBase

Taşınmakta olan webPart hedefWebPartZoneBase.

zoneIndex
Int32

içindeki zonediğer denetimlere göre dizinini webPart gösteren bir tamsayı.

Özel durumlar

webPart denetimin koleksiyonunda Controls yer almaz WebPartManager .

-veya-

zone denetimin koleksiyonunda Zones yer almaz WebPartManager .

-veya-

Denetimin webPartZone özelliği tarafından başvurulan bölge, nullşu anda bir bölgede yer almadığı webPart anlamına gelir.

webPart veya zone şeklindedir null.

zoneIndex, sıfırdan küçüktür.

Örnekler

Aşağıdaki kod örneği, bir WebPart denetimi bir bölgeden MoveWebPart diğerine taşımak için doğrudan koddan yönteminin nasıl çağrılduğunu gösterir.

Kod örneğinin üç bölümü vardır:

  • Görüntü modlarını değiştirmek için bir kullanıcı denetimi.

  • Denetimleri barındırmak için bir Web sayfası.

  • Kod örneğinin nasıl çalıştırıldığından bir açıklama.

Kod örneğinin ilk bölümü, görüntüleme modlarını değiştirmeye yönelik kullanıcı denetimidir. Kullanıcı denetimi için kaynak kodunu sınıfa genel bakışın Örnek bölümünden WebPartManager alabilirsiniz. Görüntüleme modları ve kullanıcı denetiminin nasıl çalıştığı hakkında daha fazla bilgi için bkz. İzlenecek Yol: Web Bölümleri Sayfasında Görüntüleme Modlarını Değiştirme.

Örneğin ikinci bölümü, her biri iki sunucu denetimi içeren iki bölge içeren bir Web sayfasıdır. Kullanıcı sayfadaki Web Bölümünü Taşı düğmesine tıkladığında, yöntemdeki Button1_Click kod denetimi ilk bölgeden ikinci bölgede yeni bir konuma taşır. Kodun önce denetimi sarmalayan nesneyi almak GenericWebPart için yöntemini çağırması GetGenericWebPartlist1 gerektiğine dikkat edin. Yöntemin ilk parametresi MoveWebPart bir WebPart denetim gerektirdiğinden, list1 ASP.NET sunucu denetimi olduğundan bu gereklidir.

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

Sayfa yükledikten sonra Web Bölümünü Taşı düğmesine tıklayın ve bağlantıları içeren denetimin ikinci bölgede orta konuma taşındığını unutmayın. Denetimin bu hareketi, yöntemi çağrılarak MoveWebPart program aracılığıyla gerçekleştirilir. Sayfayı tasarım moduna geçmek için Görüntü Modu açılan liste denetimini de kullanabilirsiniz ve tasarım modunda denetimleri bölgeleri içinde farklı bölgelere veya farklı konumlara sürükleyebilirsiniz. Yöntemi MoveWebPart , kullanıcı tarafından başlatılan bu tür taşımaları işlemek için denetim tarafından WebPartManager da çağrılır.

Açıklamalar

Denetim, WebPartManager aynı bölgede veya farklı bir bölgede yeni bir konuma gitmek webPart için yöntemini kullanırMoveWebPart. Bu yöntemi doğrudan koddan çağırabilirsiniz ve kullanıcı Web Bölümleri kullanıcı arabirimindeki (UI) çeşitli seçenekler kullanılarak denetimi yeni bir konuma taşırken de çağrılır.

Taşınabilmesi için önce webPart bir dizi koşulun karşılanması gerekir ve bunların çoğu bu konunun Özel Durumlar bölümünde listelenen öğelerle gösterilir. webPart Başlangıçta bir WebPartZoneBase bölgede yer almadıysa, bir bölgeye taşınamaz.

Koşullar karşılandıktan sonra, taşımak webPartiçin aşağıdaki eylem dizisi gerçekleşir:

  1. OnWebPartMoving yöntemi olayı tetiklerWebPartMoving.

  2. webPart geçerli bölgesinden kaldırılır (gerekirse) ve yeni bölgesine veya geçerli bölgesi içindeki yeni konumuna eklenir.

  3. OnWebPartMoved yöntemi olayı tetiklerWebPartMoved.

  4. Hem zoneIndex kaynak hem de hedef bölgelerdeki her WebPart denetimin sayısı, taşınan denetimi yansıtacak şekilde sıfırlanır.

Şunlara uygulanır

Ayrıca bkz.