Class
ElementTreeHelper

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

Definition

Namespace:Telerik.Reporting.Processing

Assembly:Telerik.Reporting.dll

Syntax:

cs-api-definition
public static class ElementTreeHelper

Inheritance: objectElementTreeHelper

Methods

ContainsChildWithName(LayoutElement, string)

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

Declaration

cs-api-definition
public static bool ContainsChildWithName(LayoutElement parent, string name)

Parameters

parent

LayoutElement

The parent element to search within.

name

string

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 

FindChildByName(LayoutElement, string, bool)

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

Declaration

cs-api-definition
public static LayoutElement[] FindChildByName(LayoutElement parent, string name, bool searchAllChildren)

Parameters

parent

LayoutElement

The parent element to search within.

name

string

The name to search for.

searchAllChildren

bool

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 

GetChildByIndex(LayoutElement, int)

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

Declaration

cs-api-definition
public static LayoutElement GetChildByIndex(LayoutElement parent, int index)

Parameters

parent

LayoutElement

The parent element to search within.

index

int

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 

GetChildByName(LayoutElement, string)

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

Declaration

cs-api-definition
public static LayoutElement GetChildByName(LayoutElement parent, string name)

Parameters

parent

LayoutElement

The parent element to search within.

name

string

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 

GetChildElements(LayoutElement)

Returns all immediate child layout elements within a specified parent.

Declaration

cs-api-definition
public static IEnumerable<LayoutElement> GetChildElements(LayoutElement parent)

Parameters

parent

LayoutElement

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 

IndexOfChildWithName(LayoutElement, string)

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

Declaration

cs-api-definition
public static int IndexOfChildWithName(LayoutElement parent, string name)

Parameters

parent

LayoutElement

The parent element to search within.

name

string

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