TreeViewVirtualModeCreateChildrenEventArgs.Children Property
Gets or sets the collection of children for the currently processed node object.
Namespace: DevExpress.Web
Assembly:
DevExpress.Web.v20.2.dll
NuGet Package:
DevExpress.Web
Declaration
public IList<TreeViewVirtualNode> Children { get; set; }
Public Property Children As IList(Of TreeViewVirtualNode)
Property Value
Use the Children property to access a list of child objects owned by the processed node.
Example
In this demo, the ASPxTreeView uses Virtual Mode to display the file/folder tree of the demo’s web site.
View Example
<dx:ASPxTreeView ID="treeView" runat="server" EnableCallBacks="true" OnVirtualModeCreateChildren="treeView_VirtualModeCreateChildren">
</dx:ASPxTreeView>
using System.Collections.Generic;
using DevExpress.Web.ASPxTreeView;
using System.IO;
public partial class _Default : System.Web.UI.Page {
const string FileImageUrl = "~/Images/file.png";
const string DirImageUrl = "~/Images/directory.png";
protected void Page_Load(object sender, EventArgs e) {
}
protected void treeView_VirtualModeCreateChildren(object source, TreeViewVirtualModeCreateChildrenEventArgs e) {
string parentNodePath = string.IsNullOrEmpty(e.NodeName) ? Page.MapPath("~/") : e.NodeName;
List<TreeViewVirtualNode> children = new List<TreeViewVirtualNode>();
if (Directory.Exists(parentNodePath)) {
foreach (string childPath in Directory.GetDirectories(parentNodePath)) {
string childDirName = Path.GetFileName(childPath);
if (IsSystemName(childDirName))
continue;
TreeViewVirtualNode childNode = new TreeViewVirtualNode(childPath, childDirName);
childNode.Image.Url = DirImageUrl;
children.Add(childNode);
}
foreach (string childPath in Directory.GetFiles(parentNodePath)) {
string childFileName = Path.GetFileName(childPath);
if (IsSystemName(childFileName))
continue;
TreeViewVirtualNode childNode = new TreeViewVirtualNode(childPath, childFileName);
childNode.IsLeaf = true;
childNode.Image.Url = FileImageUrl;
children.Add(childNode);
}
}
e.Children = children;
}
protected bool IsSystemName(string name) {
name = name.ToLower();
return name.StartsWith("app_") || name == "bin"
|| name.EndsWith(".aspx.cs") || name.EndsWith(".aspx.vb");
}
}
<dx:ASPxTreeView ID="treeView" runat="server" EnableCallBacks="true" OnVirtualModeCreateChildren="treeView_VirtualModeCreateChildren">
</dx:ASPxTreeView>
Imports System.Collections.Generic
Imports DevExpress.Web.ASPxTreeView
Imports System.IO
Partial Public Class _Default
Inherits System.Web.UI.Page
Private Const FileImageUrl As String = "~/Images/file.png"
Private Const DirImageUrl As String = "~/Images/directory.png"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
End Sub
Protected Sub treeView_VirtualModeCreateChildren(ByVal source As Object, ByVal e As TreeViewVirtualModeCreateChildrenEventArgs)
Dim parentNodePath As String
If String.IsNullOrEmpty(e.NodeName) Then
parentNodePath = Page.MapPath("~/")
Else
parentNodePath = e.NodeName
End If
Dim children As New List(Of TreeViewVirtualNode)()
If Directory.Exists(parentNodePath) Then
For Each childPath As String In Directory.GetDirectories(parentNodePath)
Dim childDirName As String = Path.GetFileName(childPath)
If IsSystemName(childDirName) Then
Continue For
End If
Dim childNode As New TreeViewVirtualNode(childPath, childDirName)
childNode.Image.Url = DirImageUrl
children.Add(childNode)
Next childPath
For Each childPath As String In Directory.GetFiles(parentNodePath)
Dim childFileName As String = Path.GetFileName(childPath)
If IsSystemName(childFileName) Then
Continue For
End If
Dim childNode As New TreeViewVirtualNode(childPath, childFileName)
childNode.IsLeaf = True
childNode.Image.Url = FileImageUrl
children.Add(childNode)
Next childPath
End If
e.Children = children
End Sub
Protected Function IsSystemName(ByVal name As String) As Boolean
name = name.ToLower()
Return name.StartsWith("app_") OrElse name = "bin" OrElse name.EndsWith(".aspx.cs") OrElse name.EndsWith(".aspx.vb")
End Function
End Class
See Also