TreeListNodeIterator Class
Represents an object that enables you to traverse through nodes displayed within the ASPxTreeList.
Namespace: DevExpress.Web.ASPxTreeList
Assembly: DevExpress.Web.ASPxTreeList.v24.1.dll
NuGet Package: DevExpress.Web
Declaration
Related API Members
The following members return TreeListNodeIterator objects:
Remarks
Basically, you will need to write recursive code to visit all the nodes contained within the ASPxTreeList. The Nodes Iterator allows you to avoid this, and makes traversing through the nodes a trivial task. All you have to do is to create a new TreeListNodeIterator object, and use its TreeListNodeIterator.GetNext method to obtain the next node.
A start node is specified within the TreeListNodeIterator‘s constructor. To start traversing from the root node, pass the ASPxTreeList.RootNode as a parameter. The current node is returned by the TreeListNodeIterator.Current property.
To clear any explicitly defined properties and reset the TreeListNodeIterator object to its original, use the TreeListNodeIterator.Reset method.
Note
A Node Iterator can also be created using the ASPxTreeList’s ASPxTreeList.CreateNodeIterator method.
Example
This example shows how to collect the key values of all parent nodes displayed within the ASPxTreeList. The TreeListNodeIterator
object is used to traverse through the nodes.
<dx:ASPxTreeList ID="treeList" runat="server" Width="100%" KeyFieldName="ID" ParentFieldName="Parent_ID"
AutoGenerateColumns="False" OnDataBound="treeList_DataBound">
<Columns>
<dx:TreeListDataColumn FieldName="Title" VisibleIndex="0" />
</Columns>
</dx:ASPxTreeList>
using DevExpress.Web.ASPxTreeList;
using System;
using System.Collections.Generic;
using System.Data;
protected void Page_Load(object sender, EventArgs e) {
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Parent_ID");
dt.Columns.Add("Title");
dt.Rows.Add(dt.NewRow());
dt.Rows[dt.Rows.Count - 1]["ID"] = 1;
dt.Rows[dt.Rows.Count - 1]["Parent_ID"] = null;
dt.Rows[dt.Rows.Count - 1]["Title"] = "One";
dt.Rows.Add(dt.NewRow());
dt.Rows[dt.Rows.Count - 1]["ID"] = 4;
dt.Rows[dt.Rows.Count - 1]["Parent_ID"] = 1;
dt.Rows[dt.Rows.Count - 1]["Title"] = "One A";
dt.Rows.Add(dt.NewRow());
dt.Rows[dt.Rows.Count - 1]["ID"] = 5;
dt.Rows[dt.Rows.Count - 1]["Parent_ID"] = 1;
dt.Rows[dt.Rows.Count - 1]["Title"] = "One B";
treeList.DataSource = dt;
treeList.DataBind();
}
protected void treeList_DataBound(object sender, EventArgs e) {
ASPxTreeList list = sender as ASPxTreeList;
ProcessNodes(list.Nodes[0]);
}
List<string> nodeKeys;
void ProcessNodes(TreeListNode startNode) {
if (startNode == null) return;
TreeListNodeIterator iterator = new TreeListNodeIterator(startNode);
nodeKeys = new List<string>();
while (iterator.Current != null) {
GetParentNodeKey(iterator.Current);
iterator.GetNext();
}
}
private void GetParentNodeKey(TreeListNode node) {
if (node != treeList.RootNode && node.HasChildren)
nodeKeys.Add(node.Key);
}