WebPartManager.WebParts 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取对网页上的 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 部件说明文件。 请确保在此代码示例的网页所在的目录中有一个Web.config文件。 在该节中<system.web>
,请确保有一个<webParts>``enableExport
元素,其属性设置为 true
,如以下标记所示。
<webParts enableExport="true">
...
</webParts>
将页面加载到浏览器中后,如果单击 “WebPart 计数 ”按钮,代码将使用 WebParts 该属性返回集合中的控件计数。 如果单击“ 隐藏日历标题 ”按钮,代码将更改日历,使其仅呈现边框而不是标题。
注解
该WebParts属性由WebPartManager控件用来跟踪页面上区域中包含的WebPartZoneBase所有WebPart控件。 虽然集合是只读的,但可以通过集合访问各个 WebPart 控件,并通过编程方式对这些控件进行更改。
备注
WebPart可以将控件放置在区域外部WebPartZone的页面上,这会导致控件未被WebPartManager控件跟踪或被引用在其WebParts集合中。 但是,几乎没有理由使用WebPart区域外部的控件,因为它随后失去了其Web 部件功能,并充当正常的服务器控件。
可以放置在区域中的任何类型的控件,无论是自定义WebPart控件、标准 ASP.NET 控件、用户控件还是自定义服务器控件,都可以在运行时被视为WebPart控件。 当不是WebPart控件的控件放置在WebPartZone区域中时,在运行时 ASP.NET 用对象包装控件GenericWebPart,以便控件可以充当真正的WebPart控件。 因此,通过使用 WebParts 该属性, WebPartManager 该控件可以跟踪任何类型的服务器控件,而不考虑它是否派生自 WebPart 类。