Konstrukt can dynamically build a filter dialog choosing appropriate editor views for you based on a simple property configuration. Properties of a number or date types will become range pickers, enums and properties with options defined will become select / checkbox lists and all other properties will become text input filters.
Defining filterable properties
Defining filterable properties is controlled via the collections configuration.
AddFilterableProperty(Lambda filterablePropertyExpression, Lambda filterConfig = null) : KonstruktCollectionConfigBuilder<TEntityType>
Adds the given property to the filterable properties collection.
Copy // Example
collectionConfig . AddFilterableProperty (p => p . FirstName , filterConfig => filterConfig
// ...
);
Changing the label of a filterable property
SetLabel(string label) : KonstruktFilterablePropertyConfigBuilder<TEntityType, TValueType>
Copy // Example
filterConfig . SetLabel ( "First Name" );
Adding a description to a filterable property
SetDescription(string description) : KonstruktFilterablePropertyConfigBuilder<TEntityType, TValueType>
Copy // Example
filterConfig . SetDescription ( "The first name of the person" );
Defining basic options for a filterable property
SetOptions(IDictionary<TValueType, string> options) : KonstruktFilterablePropertyConfigBuilder<TEntityType, TValueType>
Copy // Example
filterConfig . SetOptions ( new Dictionary < string , string > {
{ "Option1" , "Option One" } ,
{ "Option2" , "Option Two" }
});
Defining options with custom compare clauses for a filterable property
AddOption(object key, string label, Lambda compareExpresion) : KonstruktFilterablePropertyConfigBuilder<TEntityType, TValueType>
Copy // Example
filterConfig . AddOption ( "Option1" , "Option One" , (val) => val != "Option Two" );
Configuring the mode of a filterable property
For filterable properties with options you can configure whether the options should be multiple or single choice.
SetMode(KonstruktFilterMode mode) : KonstruktFilterablePropertyConfigBuilder<TEntityType, TValueType>
Copy // Example
filterConfig . SetMode ( KonstruktFilterMode . MultipleChoice );