CatalogPartCollection 构造函数

定义

初始化 CatalogPartCollection 类的新实例。

重载

CatalogPartCollection()

初始化 CatalogPartCollection 类的新的空实例。

CatalogPartCollection(ICollection)

通过传入 CatalogPartCollection 控件的 ICollection 集合,初始化 CatalogPart 类的新实例。

CatalogPartCollection(CatalogPartCollection, ICollection)

通过传入某个区域中现有 CatalogPartCollection 控件的 ICollection 集合以及其他控件集合,初始化 CatalogPart 类的新实例。

注解

CatalogZoneBase包含CatalogPart控件的区域通常是通过 CreateCatalogParts 方法创建CatalogPartCollection对象的控件。 但是,也可以创建自己的 CatalogPartCollection 对象用于其他编程目的。

CatalogPartCollection()

初始化 CatalogPartCollection 类的新的空实例。

public:
 CatalogPartCollection();
public CatalogPartCollection ();
Public Sub New ()

注解

构造 CatalogPartCollection 函数初始化 类的 CatalogPartCollection 空实例。 构造函数的此重载由 CatalogZoneCreateCatalogParts 方法中的 类内部用来创建空集合对象。 然后,区域会创建子区域模板中声明的所有 CatalogPart 控件的实例,并使用集合的内部方法来添加它们。

不能使用此构造函数的 CatalogPartCollection 重载来创建 的新 CatalogPartCollection 实例,并向其添加 CatalogPart 控件。 必须改用 CatalogPartCollection 构造函数的其他重载之一。

另请参阅

适用于

CatalogPartCollection(ICollection)

通过传入 CatalogPartCollection 控件的 ICollection 集合,初始化 CatalogPart 类的新实例。

public:
 CatalogPartCollection(System::Collections::ICollection ^ catalogParts);
public CatalogPartCollection (System.Collections.ICollection catalogParts);
new System.Web.UI.WebControls.WebParts.CatalogPartCollection : System.Collections.ICollection -> System.Web.UI.WebControls.WebParts.CatalogPartCollection
Public Sub New (catalogParts As ICollection)

参数

catalogParts
ICollection

ICollection 控件的 CatalogPart

示例

下面的代码示例演示如何创建自定义 CatalogPartCollection,并执行批处理操作以更改集合中的单个 CatalogPart 控件,即使该控件是只读的。 有关运行示例所需的完整代码,请参阅类概述主题的 CatalogPartCollection “示例”部分。

方法中的Button1_Click代码创建对象,将页面中的两CatalogPartArrayList控件添加到 对象,然后使用 构造函数创建新CatalogPartCollection对象CatalogPartCollection。 它还演示了如何对基础 CatalogPart 控件进行批量更改,即使集合本身是只读的。 代码循环访问 集合,更新 Description 每个控件的 属性。

protected void Button1_Click(object sender, EventArgs e)
{
  ArrayList list = new ArrayList(2);
  list.Add(PageCatalogPart1);
  list.Add(DeclarativeCatalogPart1);
  // Pass an ICollection object to the constructor.
  CatalogPartCollection myParts = new CatalogPartCollection(list);
  foreach (CatalogPart catalog in myParts)
  {
    catalog.Description = "My " + catalog.DisplayTitle;
  }

  // Use the IndexOf property to locate a CatalogPart control.
  int PageCatalogPartIndex = myParts.IndexOf(PageCatalogPart1);
  myParts[PageCatalogPartIndex].ChromeType = PartChromeType.TitleOnly;

  // Use the Contains method to see if a CatalogPart control exists.
  if (myParts.Contains(PageCatalogPart1))
  {
    WebPart closedWebPart = null;
    WebPartDescriptionCollection descriptions = PageCatalogPart1.GetAvailableWebPartDescriptions();
    if (descriptions.Count > 0)
    {
      closedWebPart = PageCatalogPart1.GetWebPart(descriptions[0]);
      closedWebPart.AllowClose = false;
    }
  }
  
  // Use indexers to display the details of the CatalogPart controls.
  Label1.Text = String.Empty;
  Label1.Text =
    "<h3>PageCatalogPart Details</h3>" +
    "ID: " + myParts[0].ID + "<br />" +
    "Count: " + myParts[0].GetAvailableWebPartDescriptions().Count;
  Label1.Text += 
    "<h3>DeclarativeCatalogPart Details</h3>" +
    "ID: " + myParts["DeclarativeCatalogPart1"].ID + "<br />" +
    "Count: " + myParts["DeclarativeCatalogPart1"].GetAvailableWebPartDescriptions().Count;
}
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) 
    Dim list As New ArrayList(2)
    list.Add(PageCatalogPart1)
    list.Add(DeclarativeCatalogPart1)
    ' Pass an ICollection object to the constructor.
    Dim myParts As New CatalogPartCollection(list)
    Dim catalog As CatalogPart
    For Each catalog In  myParts
        catalog.Description = "My " + catalog.DisplayTitle
    Next catalog
    
    ' Use the IndexOf property to locate a CatalogPart control.
    Dim PageCatalogPartIndex As Integer = _
      myParts.IndexOf(PageCatalogPart1)
    myParts(PageCatalogPartIndex).ChromeType = PartChromeType.TitleOnly
    
    ' Use the Contains method to see if a CatalogPart control exists.
    If myParts.Contains(PageCatalogPart1) Then
        Dim closedWebPart As WebPart = Nothing
        Dim descriptions As WebPartDescriptionCollection = _
          PageCatalogPart1.GetAvailableWebPartDescriptions()
        If descriptions.Count > 0 Then
            closedWebPart = PageCatalogPart1.GetWebPart(descriptions(0))
            closedWebPart.AllowClose = False
        End If
    End If
    
    ' Use indexers to display the details of the CatalogPart controls.
    Label1.Text = String.Empty
    Label1.Text = _
      "<h3>PageCatalogPart Details</h3>" & _
      "ID: " & myParts(0).ID + "<br />" & _
      "Count: " & myParts(0).GetAvailableWebPartDescriptions().Count
    Label1.Text += _
      "<h3>DeclarativeCatalogPart Details</h3>" & _
      "ID: " & myParts("DeclarativeCatalogPart1").ID & "<br />" & _
      "Count: " & myParts("DeclarativeCatalogPart1") _
        .GetAvailableWebPartDescriptions().Count

End Sub 

在浏览器中加载页面时,可以通过在“显示模式”下拉列表控件中选择“目录”,将页面切换到目录模式。 单击“ 显示目录”“部分属性” 按钮将 CatalogPartCollection 访问对象并显示包含 CatalogPart 控件的某些属性。 此外,如果将鼠标指针放在控件边框 DeclarativeCatalogPart 内的标题文本上,则可以看到单击按钮时添加到控件的新说明文本, (说明显示在工具提示) 中。 如果单击 “页面目录” 链接以显示控件 PageCatalogPart ,你会发现它也有更新的说明。

注解

构造 CatalogPartCollection 函数初始化 类的 CatalogPartCollection 实例,并传入控件集合 CatalogPart 。 这是构造函数的 CatalogPartCollection 一个重载,可用于创建新 CatalogPartCollection 对象并向其添加 CatalogPart 控件。

CatalogPartCollection虽然构造函数创建的实例是只读的,但你仍然可以以编程方式访问集合中的单个CatalogPart控件,并调用其属性和方法。

使用此构造函数的一种常见方案是,如果要对整组 CatalogPart 控件执行一些批处理操作,例如更改一组相关项的内容、外观或位置。

另请参阅

适用于

CatalogPartCollection(CatalogPartCollection, ICollection)

通过传入某个区域中现有 CatalogPartCollection 控件的 ICollection 集合以及其他控件集合,初始化 CatalogPart 类的新实例。

public:
 CatalogPartCollection(System::Web::UI::WebControls::WebParts::CatalogPartCollection ^ existingCatalogParts, System::Collections::ICollection ^ catalogParts);
public CatalogPartCollection (System.Web.UI.WebControls.WebParts.CatalogPartCollection existingCatalogParts, System.Collections.ICollection catalogParts);
new System.Web.UI.WebControls.WebParts.CatalogPartCollection : System.Web.UI.WebControls.WebParts.CatalogPartCollection * System.Collections.ICollection -> System.Web.UI.WebControls.WebParts.CatalogPartCollection
Public Sub New (existingCatalogParts As CatalogPartCollection, catalogParts As ICollection)

参数

existingCatalogParts
CatalogPartCollection

某个区域中现有 ICollection 控件的一个 CatalogPart

catalogParts
ICollection

其他 ICollection 控件的一个 CatalogPart

另请参阅

适用于