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


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>trueатрибутов enableExport имеет значение , как показано в следующей разметке.

<webParts enableExport="true">

...

</webParts>

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

Комментарии

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

Замечание

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

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

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