Поделиться через


WebPartManager.WebParts Свойство

Определение

Возвращает ссылку на все элементы управления WebPart, отслеживаемые элементом управления WebPartManager на веб-странице.

public:
 property System::Web::UI::WebControls::WebParts::WebPartCollection ^ WebParts { System::Web::UI::WebControls::WebParts::WebPartCollection ^ get(); };
[System.ComponentModel.Browsable(false)]
public System.Web.UI.WebControls.WebParts.WebPartCollection WebParts { get; }
[<System.ComponentModel.Browsable(false)>]
member this.WebParts : System.Web.UI.WebControls.WebParts.WebPartCollection
Public ReadOnly Property WebParts As WebPartCollection

Значение свойства

Объект WebPartCollection, содержащий ссылки на набор элементов управления WebPart.

Атрибуты

Примеры

В следующем примере кода показано, как программно использовать WebParts свойство для доступа к отдельным WebPart элементам управления. Обратите внимание, что в декларативной разметке веб-страницы в <asp:webpartzone> элементе есть два стандартных ASP.NET серверных элементов управления. Хотя они не наследуются от WebPart класса , так как они находятся в зоне, они будут заключены GenericWebPart в объект во время выполнения и, таким образом, будут включены в коллекцию, на которую ссылается WebParts свойство . Вы также можете добавить пользовательские WebPart элементы управления, пользовательские элементы управления или пользовательские серверные элементы управления в этой зоне, и они будут обрабатываться таким же образом.

<%@ Page Language="C#" %>

<!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)
  {
    Label1.Text = "WebPart count:  " +
      WebPartManager1.WebParts.Count.ToString();
  }

  protected void Button2_Click(object sender, EventArgs e)
  {
    WebPartManager1.WebParts["Calendar1"].ChromeType = 
      PartChromeType.BorderOnly;
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
    <asp:WebPartManager ID="WebPartManager1" runat="server" />    
    <div>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links"
            ExportMode="All">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="WebPart Count" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Hide Calendar Title" 
        OnClick="Button2_Click" />  
      <br />
      <asp:Label ID="Label1" runat="server" text="" />
    </div>
    </form>
</body>
</html>
<%@ Page Language="vb" %>

<!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)
    
    Label1.Text = "WebPart count:  " & _
      WebPartManager1.WebParts.Count.ToString()
  End Sub

  Protected Sub Button2_Click(ByVal sender As Object, _
    ByVal e As System.EventArgs)
    
    WebPartManager1.WebParts("Calendar1").ChromeType = _
      PartChromeType.BorderOnly

  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <!-- Reference the WebPartManager control. -->
    <asp:WebPartManager ID="WebPartManager1" runat="server" />    
    <div>
      <asp:WebPartZone ID="WebPartZone1" runat="server">
        <ZoneTemplate>
          <asp:BulletedList 
            DisplayMode="HyperLink" 
            ID="BulletedList1" 
            runat="server"
            Title="My Links"
            ExportMode="All">
            <asp:ListItem Value="http://www.microsoft.com">
            Microsoft
            </asp:ListItem>
            <asp:ListItem Value="http://www.msn.com">
            MSN
            </asp:ListItem>
            <asp:ListItem Value="http://www.contoso.com">
            Contoso Corp.
            </asp:ListItem>
          </asp:BulletedList>
          <asp:Calendar ID="Calendar1" runat="server" 
            Title="My Calendar" />
        </ZoneTemplate>
      </asp:WebPartZone>
      <hr />
      <asp:Button ID="Button1" runat="server" 
        Text="WebPart Count" 
        OnClick="Button1_Click" />
      <asp:Button ID="Button2" runat="server" 
        Text="Hide Calendar Title" 
        OnClick="Button2_Click" />  
      <br />
      <asp:Label ID="Label1" runat="server" text="" />
    </div>
    </form>
</body>
</html>

Обратите внимание, что для работы примера кода необходимо добавить параметр в файл Web.config, чтобы включить экспорт файлов описания веб-частей. Убедитесь, что файл Web.config в том же каталоге, что и веб-страница для этого примера кода. <system.web> В разделе убедитесь, что есть <webParts> элемент с атрибутом enableExport , равным true, как показано в следующей разметке.

<webParts enableExport="true">

...

</webParts>

После загрузки страницы в браузере при нажатии кнопки Число веб-частей код использует WebParts свойство для возврата количества элементов управления в коллекции. Если нажать кнопку Скрыть заголовок календаря , код изменит календарь таким образом, чтобы он отображал только границу, а не заголовок.

Комментарии

Свойство WebParts используется элементом управления для отслеживания WebPartManager всех WebPart элементов управления, содержащихся в WebPartZoneBase зонах на странице. Хотя коллекция доступна только для чтения, вы можете получить доступ к отдельным WebPart элементам управления через коллекцию и внести в них изменения программным способом.

Примечание

Элемент управления можно поместить на страницу за пределами WebPartZone зоны, что приводит к WebPart тому, что элемент управления не будет отслеживаться элементом WebPartManager управления или ссылаться в его WebParts коллекции. Однако нет оснований WebPart использовать элемент управления за пределами зоны, так как он теряет функциональность веб-частей и выступает в качестве обычного серверного элемента управления.

Любой тип элемента управления, который можно поместить в зону, будь то пользовательский WebPart элемент управления, стандартный элемент управления ASP.NET, пользовательский элемент управления или пользовательский серверный элемент управления, можно рассматривать как WebPart элемент управления во время выполнения. Когда элемент управления, который не является элементом WebPart управления, помещается в WebPartZone зону, во время выполнения ASP.NET заключает элемент управления в оболочку GenericWebPart с объектом , чтобы элемент управления вел себя как истинный WebPart элемент управления. Таким образом, с помощью WebParts свойства WebPartManager элемент управления может отслеживать любой тип серверного элемента управления, независимо от того, является ли он производным WebPart от класса .

Применяется к