I have a grid where one of the columns is bound to a foreign key object.
When I use the built in grid filtering I am able to filter that column. However when I try to filter with code:
When I add the CompositeFilter the notesListGridView.FilterDescriptors I get an InvalidCastException:
Invalid cast from 'System.String' to 'CoreDataServiceReference.Employee_Note_Type'.
How can I apply a filter to the foreign key object in the code?
<
telerik:RadGridView
Margin
=
"2,38,2,2"
Name
=
"notesListGridView"
CanUserInsertRows
=
"False"
CanUserDeleteRows
=
"False"
IsReadOnly
=
"True"
AutoGenerateColumns
=
"False"
TabIndex
=
"5"
SelectionMode
=
"Extended"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
UniqueName
=
"Employee_Note_Date"
Header
=
"Date"
Width
=
"120"
DataMemberBinding
=
"{Binding Employee_Note_Date, StringFormat=d}"
CellStyle
=
"{StaticResource CustomCellStyle}"
/>
<
telerik:GridViewDataColumn
UniqueName
=
"Employee_Note_Types"
Header
=
"Type"
Width
=
"200"
DataMemberBinding
=
"{Binding Employee_Note_Types, Path=Employee_Note_Types.Description}"
CellStyle
=
"{StaticResource CustomCellStyle}"
/>
<
telerik:GridViewDataColumn
UniqueName
=
"Notes"
Header
=
"Notes"
Width
=
"*"
DataMemberBinding
=
"{Binding Notes}"
TextWrapping
=
"Wrap"
CellStyle
=
"{StaticResource CustomCellStyle}"
></
telerik:GridViewDataColumn
>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
When I use the built in grid filtering I am able to filter that column. However when I try to filter with code:
string
searchTxt = searchTextBox.Text;
notesListGridView.FilterDescriptors.Clear();
CompositeFilterDescriptor compositeDescriptor =
new
CompositeFilterDescriptor();
compositeDescriptor.LogicalOperator = FilterCompositionLogicalOperator.Or;
foreach
(Telerik.Windows.Controls.GridViewColumn column
in
notesListGridView.Columns)
{
if
(column.IsVisible)
{
GridViewDataColumn col = (GridViewDataColumn)column;
if
(col.DataType.ToString() ==
"System.String"
)
{
compositeDescriptor.FilterDescriptors.Add(
new
FilterDescriptor(column.UniqueName, FilterOperator.Contains, searchTxt,
false
));
}
}
}
notesListGridView.FilterDescriptors.Add(compositeDescriptor);
When I add the CompositeFilter the notesListGridView.FilterDescriptors I get an InvalidCastException:
Invalid cast from 'System.String' to 'CoreDataServiceReference.Employee_Note_Type'.
How can I apply a filter to the foreign key object in the code?