Class PageDataCollection
A collection of PageData objects.
Inheritance
Implements
Inherited Members
Namespace: EPiServer.Core
Assembly: EPiServer.dll
Version: 10.10.4Syntax
public class PageDataCollection : IList<PageData>, ICollection<PageData>, IEnumerable<PageData>, IList, ICollection, IEnumerableRemarks
Control authors might need to fill this kind of collection from code. Mostly you'll work on collections retrieved by a GetChildren(...) call or from a Web control.
The GetChildren(...) method defined on the IPageSource interface returns a PageDataCollection. The IPageSource interface is implemented by many classes like PageBase (and descendants), DataFactory, PageControlBase (which most Web controls inherit from) and more.
PageDataCollection is often used together with other EPiServer classes, see the following HowTo articles which demonstrate some ways in which it can be used: Search for pages created recently and Search for pages based on page type property.
Examples
  The following code example demonstrates the usage of <strong>PageDataCollection</strong>.
            // must be called from inside a class that implements IPageSource, 
// like SimplePage or TemplatePage.
PageDataCollection oPages;
oPages = this.GetChildren(EPiServer.Core.PageReference.StartPage);
Response.Write("Number of pages below startpage: " + oPages.Count);Constructors
PageDataCollection()
Initializes a new instance of the PageDataCollection class that is empty and has the default initial capacity.
Declaration
public PageDataCollection()PageDataCollection(IEnumerable<PageData>)
Initializes a new instance of the PageDataCollection class that contains elements copied from the specified collection and has sufficient capacity to accomodate the number of elements copied.
Declaration
public PageDataCollection(IEnumerable<PageData> collection)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Collections.Generic.IEnumerable<PageData> | collection | The page collection whose elements are copied to the new list. | 
PageDataCollection(IEnumerable<RawPage>)
Create and copy PageData elements array of RawPage objects.
Declaration
[Obsolete("No longer used, content is imported through IContentImporter and IPropertyImporter")]
public PageDataCollection(IEnumerable<RawPage> rawPages)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Collections.Generic.IEnumerable<RawPage> | rawPages | A collection of RawPage objects that are used to populate the PageDataCollection. | 
PageDataCollection(IEnumerable)
Initializes a new instance of the PageDataCollection class that contains elements copied from the specified collection and has sufficient capacity to accomodate the number of elements copied.
Declaration
[Obsolete("No longer supported, use other constructor")]
public PageDataCollection(IEnumerable e)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Collections.IEnumerable | e | 
Remarks
Supports any System.Collections.IEnumerable that contains PageData or RawPage
Note that in the case of an System.Collections.IEnumerable with PageData instances, this constructor will reference the same instance of the PageData objects as the original enumerable, but for RawPage instances it will create new PageData objects.
PageDataCollection(Int32)
Initializes a new instance of the PageDataCollection class that is empty and has the specified initial capacity.
Declaration
public PageDataCollection(int capacity)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | capacity | The number of elements that the collection can initally store. | 
Properties
Count
Number of pages in collection
Declaration
public int Count { get; }Property Value
| Type | Description | 
|---|---|
| System.Int32 | Returns the number of pages in the collection. | 
IsFixedSize
Gets a value indicating whether the PageDataCollection has a fixed size.
Declaration
public bool IsFixedSize { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | Always false for PageDataCollection. | 
IsReadOnly
Gets a value indicating whether the ICollection is read-only (defalut value is false).
Declaration
public bool IsReadOnly { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
IsSynchronized
Gets a value indicating whether access is synchronized (thread-safe).
Declaration
public bool IsSynchronized { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
Item[Int32]
Access PageData objects using index
Declaration
public PageData this[int index] { get; set; }Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | 
Property Value
| Type | Description | 
|---|---|
| PageData | 
SyncRoot
Gets an object that can be used to synchronize access to the internal collection.
Declaration
public object SyncRoot { get; }Property Value
| Type | Description | 
|---|---|
| System.Object | 
Methods
Add(PageData)
Add new page to collection
Declaration
public void Add(PageData page)Parameters
| Type | Name | Description | 
|---|---|---|
| PageData | page | Page to add | 
Add(PageDataCollection)
Add a range of pages from another PageDataCollection.
Declaration
public void Add(PageDataCollection pages)Parameters
| Type | Name | Description | 
|---|---|---|
| PageDataCollection | pages | The collection whos elements should be added to the end of the current instance. | 
Add(IEnumerable<PageData>)
Add a range of pages from another collection.
Declaration
public void Add(IEnumerable<PageData> pages)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Collections.Generic.IEnumerable<PageData> | pages | The collection whos elements should be added to the end of the current instance. | 
Add(Object)
Adds an item, which must be of type PageData, to the PageDataCollection.
Declaration
public int Add(object value)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | value | The System.Object to add to the PageDataCollection. | 
Returns
| Type | Description | 
|---|---|
| System.Int32 | The position into which the new element was inserted. | 
Clear()
Remove all items in list
Declaration
public void Clear()Contains(PageData)
Determines whether an PageData is in the Collection.
Declaration
public bool Contains(PageData item)Parameters
| Type | Name | Description | 
|---|---|---|
| PageData | item | The PageData to locate in the List. The value can be a null reference. | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
Contains(Object)
Determines whether the PageDataCollection contains a specific value.
Declaration
public bool Contains(object value)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | value | The System.Object to locate in the PageDataCollection. | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | true if the System.Object is found in the PageDataCollection; otherwise, false. | 
Copy()
Make a deep copy of collection
Declaration
public PageDataCollection Copy()Returns
| Type | Description | 
|---|---|
| PageDataCollection | Copied collection | 
CopyTo(PageData[], Int32)
Copies the elements to an PageData Array, starting at a particular Array index.
Declaration
public void CopyTo(PageData[] array, int index)Parameters
| Type | Name | Description | 
|---|---|---|
| PageData[] | array | The one-dimensional PageData Array that is the destination of the elements copied. | 
| System.Int32 | index | The zero-based index in array at which copying begins. | 
Exists(PageReference)
Check if page with reference exists in collection
Declaration
public bool Exists(PageReference page)Parameters
| Type | Name | Description | 
|---|---|---|
| PageReference | page | The reference to find | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | Returns false when reference not found | 
Exists(PageReference, String)
Check if page with reference exists in collection
Declaration
public bool Exists(PageReference page, string languageBranch)Parameters
| Type | Name | Description | 
|---|---|---|
| PageReference | page | The reference to find | 
| System.String | languageBranch | The language branch to search for | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | Returns false when reference not found | 
Find(PageReference)
Find page reference in collection
Declaration
public int Find(PageReference page)Parameters
| Type | Name | Description | 
|---|---|---|
| PageReference | page | The reference to find | 
Returns
| Type | Description | 
|---|---|
| System.Int32 | Returns -1 when reference not found | 
Find(PageReference, String)
Find page reference in collection with a specific language branch
Declaration
public int Find(PageReference page, string languageBranch)Parameters
| Type | Name | Description | 
|---|---|---|
| PageReference | page | The reference to find | 
| System.String | languageBranch | The language branch to search for | 
Returns
| Type | Description | 
|---|---|
| System.Int32 | Returns -1 when reference not found | 
GetEnumerator()
Returns enumerator for this collection
Declaration
public IEnumerator<PageData> GetEnumerator()Returns
| Type | Description | 
|---|---|
| System.Collections.Generic.IEnumerator<PageData> | 
IndexOf(PageData)
Determines the index of a specific item in the PageDataCollection.
Declaration
public int IndexOf(PageData item)Parameters
| Type | Name | Description | 
|---|---|---|
| PageData | item | The PageData item to locate in the PageDataCollection. | 
Returns
| Type | Description | 
|---|---|
| System.Int32 | The index of  | 
IndexOf(Object)
Determines the index of a specific item in the PageDataCollection.
Declaration
public int IndexOf(object value)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | value | The System.Object to locate in the PageDataCollection. | 
Returns
| Type | Description | 
|---|---|
| System.Int32 | The index of  | 
Insert(Int32, PageData)
Insert new page at given position
Declaration
public void Insert(int index, PageData page)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | Index to insert page | 
| PageData | page | Page to insert | 
Insert(Int32, Object)
Inserts an item, which must be of type PageData, in the PageDataCollection at the specified index.
Declaration
public void Insert(int index, object value)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | The zero-based index at which  | 
| System.Object | value | The PageData instance to insert into the PageDataCollection. | 
Exceptions
| Type | Condition | 
|---|---|
| System.ArgumentOutOfRangeException | 
 | 
Remove(PageData)
Removes the first occurrence of a specific page from the PageDataCollection.
Declaration
public bool Remove(PageData page)Parameters
| Type | Name | Description | 
|---|---|---|
| PageData | page | The page to remove from the PageDataCollection. | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | true if page was successfully removed from the PageDataCollection; otherwise, false. This method also returns false if page is not found in the collection. | 
Remove(Object)
Removes the first occurrence of a specific object from the PageDataCollection.
Declaration
public void Remove(object value)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Object | value | The System.Object to remove from the PageDataCollection. | 
RemoveAt(Int32)
Remove page from collection
Declaration
public void RemoveAt(int index)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | Remove at index | 
RemoveRange(Int32, Int32)
Remove multiple pages from collection
Declaration
public void RemoveRange(int index, int count)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | Start removing at index | 
| System.Int32 | count | Number of pages to remove | 
ShallowCopy()
Make a shallow copy of collection
Declaration
public PageDataCollection ShallowCopy()Returns
| Type | Description | 
|---|---|
| PageDataCollection | Copied collection | 
Sort(IComparer<PageData>)
Sorts all the elements in the collection
Declaration
public void Sort(IComparer<PageData> comparer)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Collections.Generic.IComparer<PageData> | comparer | 
ToRawPageArray()
Returns array of RawPage elements
Declaration
public RawPage[] ToRawPageArray()Returns
| Type | Description | 
|---|---|
| RawPage[] | 
Explicit Interface Implementations
ICollection.CopyTo(Array, Int32)
Copies the elements to an Array, starting at a particular Array index.
Declaration
void ICollection.CopyTo(Array array, int index)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Array | array | The one-dimensional Array that is the destination of the elements copied. | 
| System.Int32 | index | The zero-based index in array at which copying begins. | 
IEnumerable.GetEnumerator()
Retrive enumerator
Declaration
IEnumerator IEnumerable.GetEnumerator()Returns
| Type | Description | 
|---|---|
| System.Collections.IEnumerator | 
IList.get_Item(Int32)
Declaration
object IList.get_Item(int index)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | 
Returns
| Type | Description | 
|---|---|
| System.Object | 
IList.Item[Int32]
Gets or sets the PageData instance at the specified index.
Declaration
object IList.this[] { get; set; }Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | 
Returns
| Type | Description | 
|---|---|
| System.Object | 
IList.set_Item(Int32, Object)
Declaration
void IList.set_Item(int index, object value)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Int32 | index | |
| System.Object | value | 
