Data Annotations
By default the RadDataFilter will use each of the fields provided by the underlying business object and will directly use the name of the member. If you have a scenario in which to allow the user to filter the data only by specific members and also to give them user friendly names, you have to use data annotations.
In order to use the data annotations you have to add a reference to the System.ComponentModel.DataAnnotations.dll in your project.
In this case you can use the Display attribute and set the AutoGenerateFilter and ShortName data annotations in it. Here is an example for a Person class, which exposes Name, CompanyName and Title properties. In this case the user is allowed only to filter by the CompanyName and the Title properties. Its display name is also changed to 'Company's Name'.
Example 1: Defining class Person
public class Person
{
[Display( AutoGenerateFilter = false )]
public string Name
{
get;
set;
}
[Display( ShortName = "Company's Name" )]
public string CompanyName
{
get;
set;
}
public string Title
{
get;
set;
}
}
Public Class Person
<Display(AutoGenerateFilter = False)> _
Public Property Name() As String
Get
Return m_Name
End Get
Set
m_Name = Value
End Set
End Property
Private m_Name As String
<Display(ShortName = "Company's Name")> _
Public Property CompanyName() As String
Get
Return m_CompanyName
End Get
Set
m_CompanyName = Value
End Set
End Property
Private m_CompanyName As String
Public Property Title() As String
Get
Return m_Title
End Get
Set
m_Title = Value
End Set
End Property
Private m_Title As String
End Class
If you filter a collection of Person objects via the RadDataFilter control, in the DropDown for the Data Members you should see the following:
Figure 1: RadDataFilter displaying all the members to filter on.
You can customize Members shown in the ComboBox with available members to filter on (PART_SimpleFilterMemberComboBox) by specifying whether a property should be displayed or not via BrowsableAttribute.
For example, you can apply the attribute like so:
Example 2: Setting a property to not be displayed
[Browsable(false)]
[Display(ShortName = "Company's Address")]
public string CompanyAddress
{
get;
set;
}
Figure 2: RadDataFilter displaying the Browsable members.