/// <summary> /// Attaches UI for Range filter to specified column. /// UI frontend for this filter (by default) is 2 text inputs specifying min and max value. /// </summary> /// <param name="column">Column</param> /// <param name="ui">Filter UI builder</param> /// <returns>Fluent</returns> public static void FilterRangeUi <TSourceData, TTableData, TTableColumn>( this ColumnUsage <TSourceData, TTableData, TTableColumn> column, Action <ColumnPluginConfigurationWrapper <RangeFilterUiConfig, TTableColumn> > ui = null ) where TTableData : new() { column.UpdateFilterConfig(PluginId, ui); }
/// <summary> /// Attaches simple value filter to column. /// Value column filter supports specifying only one value. /// This filter filters out source query leaving records that are having value denoted by column that is equal to specified value in filter. /// </summary> /// <param name="column">Column</param> /// <param name="ui">Filter UI builder</param> /// <returns></returns> public static void FilterValueUi <TSourceData, TTableData, TTableColumn>( this ColumnUsage <TSourceData, TTableData, TTableColumn> column, Action <ColumnPluginConfigurationWrapper <ValueFilterUiConfig, TTableColumn> > ui = null ) where TTableData : new() { column.UpdateFilterConfig <ValueFilterUiConfig, TTableColumn>(PluginId, a => { a.Placeholder(column.ColumnConfiguration.Title); if (ui != null) { ui(a); } }); }
/// <summary> /// Attaches Multi-Select filter to column /// </summary> /// <param name="column">Column configuration</param> /// <param name="ui">Filter UI builder</param> /// <returns></returns> public static void FilterMultiSelectUi <TSourceData, TTableData, TTableColumn>( this ColumnUsage <TSourceData, TTableData, TTableColumn> column, Action <ColumnPluginConfigurationWrapper <SelectFilterUiConfig, TTableColumn> > ui = null ) where TTableData : new() { column.UpdateFilterConfig <SelectFilterUiConfig, TTableColumn>(SelectFilterExtensions.PluginId, c => { if (ui != null) { ui(c); } c.Configuration.AllowSelectNothing = false; c.Configuration.IsMultiple = true; }); }