ClassElementTreeHelper
Provides utility methods that perform common tasks involving nodes in a LayoutElement tree.
Definition
Namespace:Telerik.Reporting.Processing
Assembly:Telerik.Reporting.dll
Syntax:
public static class ElementTreeHelper
Inheritance: objectElementTreeHelper
Methods
ContainsChildWithName(LayoutElement, string)
Determines whether a parent layout element contains immediate child having a specified name.
Declaration
public static bool ContainsChildWithName(LayoutElement parent, string name)
Parameters
parent
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.
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;
}
}
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
public static LayoutElement[] FindChildByName(LayoutElement parent, string name, bool searchAllChildren)
Parameters
parent
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
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.
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;
}
}
}
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
public static LayoutElement GetChildByIndex(LayoutElement parent, int index)
Parameters
parent
The parent element to search within.
index
int
The zero-based index of the child to get.
Returns
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.
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;
}
}
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
public static LayoutElement GetChildByName(LayoutElement parent, string name)
Parameters
parent
The parent element to search within.
name
string
The name to search for.
Returns
Layout element having the specified name and parent.
Example
This example shows how to get a child by name in a ItemDataBinding event handler.
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;
}
}
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
public static IEnumerable<LayoutElement> GetChildElements(LayoutElement parent)
Parameters
parent
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.
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;
}
}
}
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
public static int IndexOfChildWithName(LayoutElement parent, string name)
Parameters
parent
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.
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;
}
}
}
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