New to Telerik ReportingStart a free 30-day trial

Provides utility methods that perform common tasks involving nodes in a LayoutElement tree.

Definition

Namespace:Telerik.Reporting.Processing

Assembly:Telerik.Reporting.dll

Syntax:

C#
public static class ElementTreeHelper

Inheritance: objectElementTreeHelper

Methods

Determines whether a parent layout element contains immediate child having a specified name.

C#
public static bool ContainsChildWithName(LayoutElement parent, string name)
Parameters:parentLayoutElement

The parent element to search within.

namestring

The name to search for.

Returns:

bool

true if an layout element having the specified parent and name is found; Otherwise, false.

Example:

This example shows how to determine if a child with name is contained in a ItemDataBinding event handler.

cs
void DetailSection_ItemDataBinding_Using_ContainsChildWithName(object sender, EventArgs e)
{
	Processing.DetailSection processingInstance = (Processing.DetailSection)sender;
	if (Processing.ElementTreeHelper.ContainsChildWithName(processingInstance, "textBox1"))
	{
		processingInstance.Style.BackgroundColor = System.Drawing.Color.Blue;
	}
}
vb
Private Sub DetailSection_ItemDataBinding_Using_ContainsChildWithName(sender As Object, e As EventArgs)
    Dim processingInstance As Processing.DetailSection = DirectCast(sender, Processing.DetailSection)
    If Processing.ElementTreeHelper.ContainsChildWithName(processingInstance, "textBox1") Then
        processingInstance.Style.BackgroundColor = System.Drawing.Color.Blue
    End If
End Sub 

Searches for all layout elements with a specified name within a specified parent.

C#
public static LayoutElement[] FindChildByName(LayoutElement parent, string name, bool searchAllChildren)
Parameters:parentLayoutElement

The parent element to search within.

namestring

The name to search for.

searchAllChildrenbool

If true, all descendants within the specified parent are matched (deep search). Otherwise, only immediate children are matched.

Returns:

LayoutElement[]

Array containing all matching by name children / descendants. If no elements are found an empty array is returned

Example:

This example shows how to find all children with name in a ItemDataBinding event handler.

cs
void DetailSection_ItemDataBinding_Using_FindChildByName(object sender, EventArgs e)
{
	Processing.DetailSection processingInstance = (Processing.DetailSection)sender;
	Processing.LayoutElement[] elements = Processing.ElementTreeHelper.FindChildByName(processingInstance, "textBox1", true);
	foreach (Processing.LayoutElement child in elements)
	{
		Processing.VisualElement visualChild = child as Processing.VisualElement;
		if (null != visualChild)
		{
			visualChild.Style.BackgroundColor = System.Drawing.Color.Blue;
		}
	}
}
vb
Private Sub DetailSection_ItemDataBinding_Using_FindChildByName(sender As Object, e As EventArgs)
    Dim processingInstance As Processing.DetailSection = DirectCast(sender, Processing.DetailSection)
    Dim elements As Processing.LayoutElement() = Processing.ElementTreeHelper.FindChildByName(processingInstance, "textBox1", True)
    For Each child As Processing.LayoutElement In elements
        Dim visualChild As Processing.VisualElement = TryCast(child, Processing.VisualElement)
        If visualChild IsNot Nothing Then
            visualChild.Style.BackgroundColor = System.Drawing.Color.Blue
        End If
    Next
End Sub 

Returns the immediate child layout element within a specified parent at specified index.

C#
public static LayoutElement GetChildByIndex(LayoutElement parent, int index)
Parameters:parentLayoutElement

The parent element to search within.

indexint

The zero-based index of the child to get.

Returns:

LayoutElement

Layout element having the specified parent at the specified index.

Example:

This example shows how to access a child by index in a ItemDataBinding event handler.

cs
void DetailSection_ItemDataBinding_Using_GetChildByIndex(object sender, EventArgs e)
{
    Processing.DetailSection processingInstance = (Processing.DetailSection)sender;
    Processing.LayoutElement child = Processing.ElementTreeHelper.GetChildByIndex(processingInstance, 0);
    Processing.VisualElement visualChild = child as Processing.VisualElement;
    if (null != visualChild)
    {
        visualChild.Style.BackgroundColor = System.Drawing.Color.Blue;
    }
}
vb
Private Sub DetailSection_ItemDataBinding_Using_GetChildByIndex(sender As Object, e As EventArgs)
    Dim processingInstance As Processing.DetailSection = DirectCast(sender, Processing.DetailSection)
    Dim child As Processing.LayoutElement = Processing.ElementTreeHelper.GetChildByIndex(processingInstance, 0)
    Dim visualChild As Processing.VisualElement = TryCast(child, Processing.VisualElement)
    If visualChild IsNot Nothing Then
        visualChild.Style.BackgroundColor = System.Drawing.Color.Blue
    End If
End Sub 

Returns the first immediate child layout element within a specified parent having a specified name.

C#
public static LayoutElement GetChildByName(LayoutElement parent, string name)
Parameters:parentLayoutElement

The parent element to search within.

namestring

The name to search for.

Returns:

LayoutElement

Layout element having the specified name and parent.

Example:

This example shows how to get a child by name in a ItemDataBinding event handler.

cs
void DetailSection_ItemDataBinding_Using_GetChildByName(object sender, EventArgs e)
{
	Processing.DetailSection processingInstance = (Processing.DetailSection)sender;
	Processing.LayoutElement child = Processing.ElementTreeHelper.GetChildByName(processingInstance, "textBox1");
	Processing.VisualElement visualChild = child as Processing.VisualElement;
	if (null != visualChild)
	{
		visualChild.Style.BackgroundColor = System.Drawing.Color.Blue;
	}
}
vb
Private Sub DetailSection_ItemDataBinding_Using_GetChildByName(sender As Object, e As EventArgs)
    Dim processingInstance As Processing.DetailSection = DirectCast(sender, Processing.DetailSection)
    Dim child As Processing.LayoutElement = Processing.ElementTreeHelper.GetChildByName(processingInstance, "textBox1")
    Dim visualChild As Processing.VisualElement = TryCast(child, Processing.VisualElement)
    If visualChild IsNot Nothing Then
        visualChild.Style.BackgroundColor = System.Drawing.Color.Blue
    End If
End Sub 

Returns all immediate child layout elements within a specified parent.

C#
public static IEnumerable<LayoutElement> GetChildElements(LayoutElement parent)
Parameters:parentLayoutElement

The parent element.

Returns:

IEnumerable<LayoutElement>

Enumerable of all layout elements having the specified parent. If the parent does not have children, an empty enumeration is returned.

Example:

This example shows how to access all children of a parent layout element in a ItemDataBinding event handler.

cs
void DetailSection_ItemDataBinding_Using_GetChildElements(object sender, EventArgs e)
{
	Processing.DetailSection processingInstance = (Processing.DetailSection)sender;
	IEnumerable<Processing.LayoutElement> elements = Processing.ElementTreeHelper.GetChildElements(processingInstance);
	foreach (Processing.LayoutElement child in elements)
	{
		Processing.VisualElement visualChild = child as Processing.VisualElement;
		if (null != visualChild)
		{
			visualChild.Style.BackgroundColor = System.Drawing.Color.Blue;
		}
	}
}
vb
Private Sub DetailSection_ItemDataBinding_Using_GetChildElements(sender As Object, e As EventArgs)
    Dim processingInstance As Processing.DetailSection = DirectCast(sender, Processing.DetailSection)
    Dim elements As System.Collections.Generic.IEnumerable(Of Processing.LayoutElement) = Processing.ElementTreeHelper.GetChildElements(processingInstance)
    For Each child As Processing.LayoutElement In elements
        Dim visualChild As Processing.VisualElement = TryCast(child, Processing.VisualElement)
        If visualChild IsNot Nothing Then
            visualChild.Style.BackgroundColor = System.Drawing.Color.Blue
        End If
    Next
End Sub 

Returns the zero-based index of the first occurrence of a layout element with a specified name within a parent.

C#
public static int IndexOfChildWithName(LayoutElement parent, string name)
Parameters:parentLayoutElement

The parent element to search within.

namestring

The name to search for.

Returns:

int

The zero-based index of the first occurrence of a layout element having the specified name within the specified parent.

Example:

This example shows how to get the index of a child in a ItemDataBinding event handler.

cs
void DetailSection_ItemDataBinding_Using_IndexOfChildWithName(object sender, EventArgs e)
{
	Processing.DetailSection processingInstance = (Processing.DetailSection)sender;
	int index = Processing.ElementTreeHelper.IndexOfChildWithName(processingInstance, "textBox1");
	if (index >= 0)
	{
		Processing.LayoutElement child = Processing.ElementTreeHelper.GetChildByIndex(processingInstance, index);
		Processing.VisualElement visualChild = child as Processing.VisualElement;
		if (null != visualChild)
		{
			visualChild.Style.BackgroundColor = System.Drawing.Color.Blue;
		}
	}
}
vb
Private Sub DetailSection_ItemDataBinding_Using_IndexOfChildWithName(sender As Object, e As EventArgs)
    Dim processingInstance As Processing.DetailSection = DirectCast(sender, Processing.DetailSection)
    Dim index As Integer = Processing.ElementTreeHelper.IndexOfChildWithName(processingInstance, "textBox1")
    If index >= 0 Then
        Dim child As Processing.LayoutElement = Processing.ElementTreeHelper.GetChildByIndex(processingInstance, index)
        Dim visualChild As Processing.VisualElement = TryCast(child, Processing.VisualElement)
        If visualChild IsNot Nothing Then
            visualChild.Style.BackgroundColor = System.Drawing.Color.Blue
        End If
    End If
End Sub