Hi Valerio,
It would be better to use a dictionary to store the names and then just change the data source of the editor. Here is an example for this:
Dictionary<
string
,
string
> displayNames;
protected
override
void
OnLoad(EventArgs e)
{
base
.OnLoad(e);
displayNames =
new
Dictionary<
string
,
string
>();
displayNames.Add(
"loc"
,
"Location"
);
displayNames.Add(
"com"
,
"Company"
);
foreach
(var item
in
radGridView1.Columns)
{
if
(displayNames.ContainsKey(item.FieldName))
{
item.HeaderText = displayNames[item.FieldName];
}
}
radDataFilter1.EditorInitialized += RadDataFilter1_EditorInitialized;
radDataFilter1.NodeFormatting += RadDataFilter1_NodeFormatting;
}
private
void
RadDataFilter1_NodeFormatting(
object
sender, TreeNodeFormattingEventArgs e)
{
DataFilterCriteriaElement dataExpressionFilterElement = e.NodeElement
as
DataFilterCriteriaElement;
if
(dataExpressionFilterElement !=
null
)
{
var node = dataExpressionFilterElement.Data
as
DataFilterCriteriaNode;
if
(displayNames.ContainsKey(node.PropertyName))
{
dataExpressionFilterElement.FieldElement.Text = displayNames[node.PropertyName];
}
}
}
private
void
RadDataFilter1_EditorInitialized(
object
sender, Telerik.WinControls.UI.TreeNodeEditorInitializedEventArgs e)
{
var editor = e.Editor
as
TreeViewDropDownListEditor;
DataFilterCriteriaElement criteriaElement = e.NodeElement
as
DataFilterCriteriaElement;
if
(editor !=
null
&& criteriaElement !=
null
)
{
if
(criteriaElement.EditingElement
is
DataFilterFieldEditorElement)
{
var element = editor.EditorElement
as
BaseDropDownListEditorElement;
element.DataSource = displayNames;
element.ValueMember =
"Key"
;
element.DisplayMember =
"Value"
;
}
}
}
Let me know if I can assist you further.
Regards,
Dimitar
Progress Telerik