diff --git a/GridBlazor.Tests/Client/ClientTests.cs b/GridBlazor.Tests/Client/ClientTests.cs
index 41293d77..54e016c0 100644
--- a/GridBlazor.Tests/Client/ClientTests.cs
+++ b/GridBlazor.Tests/Client/ClientTests.cs
@@ -43,8 +43,8 @@ public void TestMainMethods()
Assert.IsTrue(_client.Grid.ComponentOptions.AllowMultipleFilters);
_client.Searchable();
- Assert.IsTrue(_client.Grid.SearchingEnabled);
- Assert.IsTrue(_client.Grid.SearchingOnlyTextColumns);
+ Assert.IsTrue(_client.Grid.SearchOptions.Enabled);
+ Assert.IsTrue(_client.Grid.SearchOptions.OnlyTextColumns);
_client.Named("test");
Assert.AreEqual(_client.Grid.ComponentOptions.GridName, "test");
diff --git a/GridBlazor.Tests/Client/ODataClientTests.cs b/GridBlazor.Tests/Client/ODataClientTests.cs
index 43bc6eb8..3a3ba703 100644
--- a/GridBlazor.Tests/Client/ODataClientTests.cs
+++ b/GridBlazor.Tests/Client/ODataClientTests.cs
@@ -46,8 +46,8 @@ public void TestMainMethods()
Assert.IsTrue(_client.Grid.ComponentOptions.AllowMultipleFilters);
_client.Searchable();
- Assert.IsTrue(_client.Grid.SearchingEnabled);
- Assert.IsTrue(_client.Grid.SearchingOnlyTextColumns);
+ Assert.IsTrue(_client.Grid.SearchOptions.Enabled);
+ Assert.IsTrue(_client.Grid.SearchOptions.OnlyTextColumns);
_client.Named("test");
Assert.AreEqual(_client.Grid.ComponentOptions.GridName, "test");
diff --git a/GridBlazor.Tests/GridBlazor.Tests.csproj b/GridBlazor.Tests/GridBlazor.Tests.csproj
index 945da9ab..0f943e49 100644
--- a/GridBlazor.Tests/GridBlazor.Tests.csproj
+++ b/GridBlazor.Tests/GridBlazor.Tests.csproj
@@ -2,7 +2,7 @@
net6.0
- 3.0.4
+ 3.2.0
diff --git a/GridBlazor/CGrid.cs b/GridBlazor/CGrid.cs
index 5949dcf9..777cd358 100644
--- a/GridBlazor/CGrid.cs
+++ b/GridBlazor/CGrid.cs
@@ -196,13 +196,7 @@ private CGrid(HttpClient httpClient, string url,
///
public int ItemsCount { get { return _pager.ItemsCount; } }
- public bool SearchingEnabled { get; set; }
-
- public bool SearchingOnlyTextColumns { get; set; }
-
- public bool SearchingHiddenColumns { get; set; }
-
- public bool SearchingSplittedWords { get; set; }
+ public SearchOptions SearchOptions { get; set; } = new SearchOptions() { Enabled = false };
public bool ExtSortingEnabled { get; set; }
diff --git a/GridBlazor/Client/GridClient.cs b/GridBlazor/Client/GridClient.cs
index cf438909..0c03fe13 100644
--- a/GridBlazor/Client/GridClient.cs
+++ b/GridBlazor/Client/GridClient.cs
@@ -188,15 +188,21 @@ public IGridClient Searchable(bool enable, bool onlyTextColumns)
public IGridClient Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns)
{
- return Searchable(enable, onlyTextColumns, false, false);
+ return Searchable(o =>
+ {
+ o.Enabled = enable;
+ o.OnlyTextColumns = onlyTextColumns;
+ o.HiddenColumns = hiddenColumns;
+ o.SplittedWords = false;
+ });
}
- public IGridClient Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns, bool splittedWords)
+ public IGridClient Searchable(Action searchOptions)
{
- _source.SearchingEnabled = enable;
- _source.SearchingOnlyTextColumns = onlyTextColumns;
- _source.SearchingHiddenColumns = hiddenColumns;
- _source.SearchingSplittedWords = splittedWords;
+ var options = new SearchOptions();
+ searchOptions?.Invoke(options);
+
+ _source.SearchOptions = options;
return this;
}
diff --git a/GridBlazor/Client/IGridClient.cs b/GridBlazor/Client/IGridClient.cs
index 8d3a0872..9110f9a2 100644
--- a/GridBlazor/Client/IGridClient.cs
+++ b/GridBlazor/Client/IGridClient.cs
@@ -84,7 +84,7 @@ public interface IGridClient
///
/// Enable or disable searching for all columns
///
- IGridClient Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns, bool splittedWords);
+ IGridClient Searchable(Action searchOptions);
///
/// Enable extended sorting
diff --git a/GridBlazor/Filtering/FilterGridODataProcessor.cs b/GridBlazor/Filtering/FilterGridODataProcessor.cs
index ef29783f..e73e6e3e 100644
--- a/GridBlazor/Filtering/FilterGridODataProcessor.cs
+++ b/GridBlazor/Filtering/FilterGridODataProcessor.cs
@@ -58,18 +58,18 @@ public string Process()
// workaround for lack of $search OData support
var search = new List();
- if (_grid.SearchingEnabled && !string.IsNullOrWhiteSpace(_searchSettings.SearchValue))
+ if (_grid.SearchOptions.Enabled && !string.IsNullOrWhiteSpace(_searchSettings.SearchValue))
{
foreach (IGridColumn column in _grid.Columns)
{
var gridColumn = column as IGridColumn;
if (gridColumn == null) continue;
- if (!_grid.SearchingHiddenColumns && gridColumn.Hidden) continue;
+ if (!_grid.SearchOptions.HiddenColumns && gridColumn.Hidden) continue;
if (gridColumn.Filter == null) continue;
if (!gridColumn.Filter.IsTextColumn()) continue;
List options = new List();
- if (_grid.SearchingSplittedWords)
+ if (_grid.SearchOptions.SplittedWords)
{
var searchWords = _searchSettings.SearchValue.Split(' ');
foreach (var searchWord in searchWords)
diff --git a/GridBlazor/GridBlazor.csproj b/GridBlazor/GridBlazor.csproj
index c03d7aa8..4d01b6b0 100644
--- a/GridBlazor/GridBlazor.csproj
+++ b/GridBlazor/GridBlazor.csproj
@@ -6,7 +6,7 @@
8.0
True
False
- 3.1.1
+ 3.2.0
GridBlazor
Grid components for Blazor
Grid components for Blazor
diff --git a/GridBlazor/Pages/GridComponent.razor b/GridBlazor/Pages/GridComponent.razor
index 7322c98f..122625b5 100644
--- a/GridBlazor/Pages/GridComponent.razor
+++ b/GridBlazor/Pages/GridComponent.razor
@@ -170,7 +170,7 @@
}
- @if (Grid.SearchingEnabled)
+ @if (Grid.SearchOptions.Enabled)
{
diff --git a/GridBlazor/Searching/SearchGridODataProcessor.cs b/GridBlazor/Searching/SearchGridODataProcessor.cs
index 5d092c1c..05959617 100644
--- a/GridBlazor/Searching/SearchGridODataProcessor.cs
+++ b/GridBlazor/Searching/SearchGridODataProcessor.cs
@@ -29,7 +29,7 @@ public void UpdateSettings(IGridSearchSettings settings)
public string Process()
{
string result = "";
- if (_grid.SearchingEnabled && !string.IsNullOrWhiteSpace(_settings.SearchValue))
+ if (_grid.SearchOptions.Enabled && !string.IsNullOrWhiteSpace(_settings.SearchValue))
{
result = "$search='" + WebUtility.UrlEncode(_settings.SearchValue.Replace("'", "''")) + "'";
}
diff --git a/GridCore/GridCore.csproj b/GridCore/GridCore.csproj
index 041e62f0..a0c758c3 100644
--- a/GridCore/GridCore.csproj
+++ b/GridCore/GridCore.csproj
@@ -7,7 +7,7 @@
False
GridCore
GridCore
- 5.1.1
+ 5.2.0
GridCore
Grid core component
Grid core component
diff --git a/GridCore/SGridCore.cs b/GridCore/SGridCore.cs
index 085dfb5f..14412ca9 100644
--- a/GridCore/SGridCore.cs
+++ b/GridCore/SGridCore.cs
@@ -118,13 +118,7 @@ public IGridColumnCollection Columns
get { return _columnsCollection; }
}
- public bool SearchingEnabled { get; set; }
-
- public bool SearchingOnlyTextColumns { get; set; }
-
- public bool SearchingHiddenColumns { get; set; }
-
- public bool SearchingSplittedWords { get; set; }
+ public SearchOptions SearchOptions { get; set; } = new SearchOptions() { Enabled = false };
public bool ExtSortingEnabled { get; set; }
diff --git a/GridCore/Searching/SearchGridItemsProcessor.cs b/GridCore/Searching/SearchGridItemsProcessor.cs
index aa5e7aa4..18570b73 100644
--- a/GridCore/Searching/SearchGridItemsProcessor.cs
+++ b/GridCore/Searching/SearchGridItemsProcessor.cs
@@ -34,12 +34,12 @@ public void UpdateSettings(IGridSearchSettings settings)
public IQueryable Process(IQueryable items)
{
- if (_grid.SearchingEnabled && !string.IsNullOrWhiteSpace(_settings.SearchValue))
+ if (_grid.SearchOptions.Enabled && !string.IsNullOrWhiteSpace(_settings.SearchValue))
{
ParameterExpression parameter = Expression.Parameter(typeof(T), "x");
Expression binaryExpression = null;
- if (_grid.SearchingSplittedWords)
+ if (_grid.SearchOptions.SplittedWords)
{
var searchWords = _settings.SearchValue.Split(' ');
foreach (var searchWord in searchWords)
@@ -66,17 +66,17 @@ private Expression GetExpression(ISGrid grid, Expression binaryExpression, Param
IGridColumn gridColumn = column as IGridColumn;
if (gridColumn == null) continue;
if (gridColumn.Search == null) continue;
- if (!grid.SearchingHiddenColumns && gridColumn.Hidden) continue;
+ if (!grid.SearchOptions.HiddenColumns && gridColumn.Hidden) continue;
if (binaryExpression == null)
{
binaryExpression = gridColumn.Search.GetExpression(searchValue,
- grid.SearchingOnlyTextColumns, parameter, grid.RemoveDiacritics);
+ grid.SearchOptions.OnlyTextColumns, parameter, grid.RemoveDiacritics);
}
else
{
Expression expression = gridColumn.Search.GetExpression(searchValue,
- grid.SearchingOnlyTextColumns, parameter, grid.RemoveDiacritics);
+ grid.SearchOptions.OnlyTextColumns, parameter, grid.RemoveDiacritics);
if (expression != null)
{
binaryExpression = Expression.OrElse(binaryExpression, expression);
diff --git a/GridCore/Server/GridCoreServer.cs b/GridCore/Server/GridCoreServer.cs
index 5bbd6bc3..0adc5e5e 100644
--- a/GridCore/Server/GridCoreServer.cs
+++ b/GridCore/Server/GridCoreServer.cs
@@ -147,15 +147,21 @@ public IGridServer Searchable(bool enable, bool onlyTextColumns)
public IGridServer Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns)
{
- return Searchable(enable, onlyTextColumns, false, false);
+ return Searchable(o =>
+ {
+ o.Enabled = enable;
+ o.OnlyTextColumns = onlyTextColumns;
+ o.HiddenColumns = hiddenColumns;
+ o.SplittedWords = false;
+ });
}
- public IGridServer Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns, bool splittedWords)
+ public IGridServer Searchable(Action searchOptions)
{
- _source.SearchingEnabled = enable;
- _source.SearchingOnlyTextColumns = onlyTextColumns;
- _source.SearchingHiddenColumns = hiddenColumns;
- _source.SearchingSplittedWords = splittedWords;
+ var options = new SearchOptions();
+ searchOptions?.Invoke(options);
+
+ _source.SearchOptions = options;
return this;
}
diff --git a/GridCore/Server/IGridServer.cs b/GridCore/Server/IGridServer.cs
index 8578dd37..536243ee 100644
--- a/GridCore/Server/IGridServer.cs
+++ b/GridCore/Server/IGridServer.cs
@@ -82,7 +82,7 @@ public interface IGridServer
///
/// Enable or disable searching for all columns
///
- IGridServer Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns, bool splittedWords);
+ IGridServer Searchable(Action searchOptions);
///
/// Enable extended sorting
diff --git a/GridMvc.Tests/GridMvc.Tests.csproj b/GridMvc.Tests/GridMvc.Tests.csproj
index dd15771b..bc04ee01 100644
--- a/GridMvc.Tests/GridMvc.Tests.csproj
+++ b/GridMvc.Tests/GridMvc.Tests.csproj
@@ -2,7 +2,7 @@
net6.0
- 5.0.3
+ 5.2.0
diff --git a/GridMvc.Tests/Html/HtmlOptionsTests.cs b/GridMvc.Tests/Html/HtmlOptionsTests.cs
index 85833c25..add6ad6b 100644
--- a/GridMvc.Tests/Html/HtmlOptionsTests.cs
+++ b/GridMvc.Tests/Html/HtmlOptionsTests.cs
@@ -35,8 +35,8 @@ public void TestMainMethods()
Assert.IsTrue(_grid.RenderOptions.AllowMultipleFilters);
_opt.Searchable();
- Assert.IsTrue(_grid.SearchingEnabled);
- Assert.IsTrue(_grid.SearchingOnlyTextColumns);
+ Assert.IsTrue(_grid.SearchOptions.Enabled);
+ Assert.IsTrue(_grid.SearchOptions.OnlyTextColumns);
_opt.Named("test");
Assert.AreEqual(_grid.RenderOptions.GridName, "test");
diff --git a/GridMvc.Tests/Searching/SearchTests.cs b/GridMvc.Tests/Searching/SearchTests.cs
index 74134a32..5783b9b3 100644
--- a/GridMvc.Tests/Searching/SearchTests.cs
+++ b/GridMvc.Tests/Searching/SearchTests.cs
@@ -27,8 +27,8 @@ public void TestTextColumnsSearch()
store.Add("grid-search", "TEST");
QueryCollection query = new QueryCollection(store);
_grid = new TestGrid(_repo.GetAll(), query);
- _grid.SearchingEnabled = true;
- _grid.SearchingOnlyTextColumns = true;
+ _grid.SearchOptions.Enabled = true;
+ _grid.SearchOptions.OnlyTextColumns = true;
Action> columns = c =>
{
@@ -61,8 +61,8 @@ public void TestAllColumnsSearch()
store.Add("grid-search", "3");
QueryCollection query = new QueryCollection(store);
_grid = new TestGrid(_repo.GetAll(), query);
- _grid.SearchingEnabled = true;
- _grid.SearchingOnlyTextColumns = false;
+ _grid.SearchOptions.Enabled = true;
+ _grid.SearchOptions.OnlyTextColumns = false;
Action> columns = c =>
{
diff --git a/GridMvc.Tests/Server/ServerTests.cs b/GridMvc.Tests/Server/ServerTests.cs
index 173bedcf..e1bdb6d7 100644
--- a/GridMvc.Tests/Server/ServerTests.cs
+++ b/GridMvc.Tests/Server/ServerTests.cs
@@ -46,8 +46,8 @@ public void TestMainMethods()
Assert.IsTrue(_server.Grid.RenderOptions.AllowMultipleFilters);
_server.Searchable();
- Assert.IsTrue(_server.Grid.SearchingEnabled);
- Assert.IsTrue(_server.Grid.SearchingOnlyTextColumns);
+ Assert.IsTrue(_server.Grid.SearchOptions.Enabled);
+ Assert.IsTrue(_server.Grid.SearchOptions.OnlyTextColumns);
_server.Named("test");
Assert.AreEqual(_server.Grid.RenderOptions.GridName, "test");
diff --git a/GridMvc/GridMvc.csproj b/GridMvc/GridMvc.csproj
index e03d1b2a..22768161 100644
--- a/GridMvc/GridMvc.csproj
+++ b/GridMvc/GridMvc.csproj
@@ -8,7 +8,7 @@
False
GridMvc
GridMvcCore
- 5.1.1
+ 5.2.0
GridMvc
ASP.NET MVC Grid component
ASP.NET MVC Grid component
diff --git a/GridMvc/Html/GridHtmlOptions.cs b/GridMvc/Html/GridHtmlOptions.cs
index 80bb65ba..c6307df8 100644
--- a/GridMvc/Html/GridHtmlOptions.cs
+++ b/GridMvc/Html/GridHtmlOptions.cs
@@ -144,9 +144,21 @@ public IGridHtmlOptions Searchable(bool enable, bool onlyTextColumns)
public IGridHtmlOptions Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns)
{
- _source.SearchingEnabled = enable;
- _source.SearchingOnlyTextColumns = onlyTextColumns;
- _source.SearchingHiddenColumns = hiddenColumns;
+ return Searchable(o =>
+ {
+ o.Enabled = enable;
+ o.OnlyTextColumns = onlyTextColumns;
+ o.HiddenColumns = hiddenColumns;
+ o.SplittedWords = false;
+ });
+ }
+
+ public IGridHtmlOptions Searchable(Action searchOptions)
+ {
+ var options = new SearchOptions();
+ searchOptions?.Invoke(options);
+
+ _source.SearchOptions = options;
return this;
}
diff --git a/GridMvc/Html/HtmlGrid.cs b/GridMvc/Html/HtmlGrid.cs
index 43268aaf..b7afbb33 100644
--- a/GridMvc/Html/HtmlGrid.cs
+++ b/GridMvc/Html/HtmlGrid.cs
@@ -44,26 +44,9 @@ public bool EnablePaging
set { _source.EnablePaging = value; }
}
- bool IGrid.SearchingEnabled {
- get { return _source.SearchingEnabled; }
- set { _source.SearchingEnabled = value; }
- }
-
- public bool SearchingOnlyTextColumns {
- get { return _source.SearchingOnlyTextColumns; }
- set { _source.SearchingOnlyTextColumns = value; }
- }
-
- public bool SearchingHiddenColumns
- {
- get { return _source.SearchingHiddenColumns; }
- set { _source.SearchingHiddenColumns = value; }
- }
-
- public bool SearchingSplittedWords
- {
- get { return _source.SearchingSplittedWords; }
- set { _source.SearchingSplittedWords = value; }
+ SearchOptions IGrid.SearchOptions {
+ get { return _source.SearchOptions; }
+ set { _source.SearchOptions = value; }
}
public bool ExtSortingEnabled
diff --git a/GridMvc/Html/IGridHtmlOptions.cs b/GridMvc/Html/IGridHtmlOptions.cs
index 012c3d86..7c3d3cc6 100644
--- a/GridMvc/Html/IGridHtmlOptions.cs
+++ b/GridMvc/Html/IGridHtmlOptions.cs
@@ -81,6 +81,11 @@ public interface IGridHtmlOptions : IHtmlContent
///
IGridHtmlOptions Searchable(bool enable, bool onlyTextColumns, bool hiddenColumns);
+ ///
+ /// Enable or disable searching for all columns
+ ///
+ IGridHtmlOptions Searchable(Action searchOptions);
+
///
/// Enable extended sorting
///
diff --git a/GridMvc/Views/Shared/_Grid.cshtml b/GridMvc/Views/Shared/_Grid.cshtml
index cffc6aa1..fed3c68b 100644
--- a/GridMvc/Views/Shared/_Grid.cshtml
+++ b/GridMvc/Views/Shared/_Grid.cshtml
@@ -71,7 +71,7 @@ else
}
- @if (Model.SearchingEnabled)
+ @if (Model.SearchOptions.Enabled)
{
@await Html.PartialAsync("_GridSearch", Model)
}
diff --git a/GridShared/GridShared.csproj b/GridShared/GridShared.csproj
index 9cf54bb8..e1250c64 100644
--- a/GridShared/GridShared.csproj
+++ b/GridShared/GridShared.csproj
@@ -3,7 +3,7 @@
netstandard2.1;net5.0;net6.0
8.0
- 5.1.1
+ 5.2.0
GridShared
Support library for GridBlazor and GridMvcCore component libraries
Support library for GridBlazor and GridMvcCore component libraries
diff --git a/GridShared/IGrid.cs b/GridShared/IGrid.cs
index 453f7bf4..12da05bd 100644
--- a/GridShared/IGrid.cs
+++ b/GridShared/IGrid.cs
@@ -38,9 +38,9 @@ public interface IGrid
bool EnablePaging { get; set; }
///
- /// Set or get default value of searching
+ /// Set or get options for searching
///
- bool SearchingEnabled { get; set; }
+ SearchOptions SearchOptions { get; set; }
///
/// Set or get default value of extended sorting
@@ -62,22 +62,6 @@ public interface IGrid
///
bool ClearFiltersButtonEnabled { get; set; }
- ///
- /// Set or get value of searching all columns or only text ones
- ///
- bool SearchingOnlyTextColumns { get; set; }
-
- ///
- /// Set or get value of searching all columns including hidden ones
- ///
- bool SearchingHiddenColumns { get; set; }
-
- ///
- /// Set or get value of searching all columns for splitted words
- ///
- bool SearchingSplittedWords { get; set; }
-
-
///
/// Text in empty grid (no items for display)
///
diff --git a/GridShared/SearchOptions.cs b/GridShared/SearchOptions.cs
new file mode 100644
index 00000000..9e0656a2
--- /dev/null
+++ b/GridShared/SearchOptions.cs
@@ -0,0 +1,10 @@
+namespace GridShared
+{
+ public class SearchOptions
+ {
+ public bool Enabled { get; set; } = true;
+ public bool OnlyTextColumns { get; set; } = true;
+ public bool HiddenColumns { get; set; } = false;
+ public bool SplittedWords { get; set; } = false;
+ }
+}
diff --git a/docs/blazor_client/Searching.md b/docs/blazor_client/Searching.md
index 36886976..60e18d7f 100644
--- a/docs/blazor_client/Searching.md
+++ b/docs/blazor_client/Searching.md
@@ -29,10 +29,23 @@ Parameter | Description | Example
enable (optional) | bool to enable searching on the grid | Searchable(true, ...)
onlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones | Searchable(..., true, ...)
hiddenColumns (optional) | bool to enable searching on hidden columns | Searchable(..., true)
+searchOptions (optional) | ```Action``` to configure all search options
```enable``` default value is ```true```, ```onlyTextColumns``` default value is ```true```, and ```hiddenColumns``` default value is ```false```.
-Searching on boolean columns has benn disabled because EF Core 3.0 is not supporting it yet.
+## SearchOptions attributes
+
+Parameter | Description
+--------- | -----------
+Enabled (optional) | bool to enable searching on the grid
+OnlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones
+HiddenColumns (optional) | bool to enable searching on hidden columns
+SplittedWords (optional) | bool to enable search of any word contained in the search phrase on any column. The defaul behavior is to search the complete search phrase on any column.
+
+```Enabled``` default value is ```true```, ```OnlyTextColumns``` default value is ```true```, ```HiddenColumns``` default value is ```false```, and ```SplittedWords ``` default value is false.
+
+
+Searching on boolean columns has been disabled because EF Core 3.0 is not supporting it yet.
# Disable diacritics distinction
diff --git a/docs/blazor_local/Searching.md b/docs/blazor_local/Searching.md
index e2435cc1..7881f081 100644
--- a/docs/blazor_local/Searching.md
+++ b/docs/blazor_local/Searching.md
@@ -68,9 +68,61 @@ Parameter | Description | Example
enable (optional) | bool to enable searching on the grid | Searchable(true, ...)
onlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones | Searchable(..., true, ...)
hiddenColumns (optional) | bool to enable searching on hidden columns | Searchable(..., true)
+searchOptions (optional) | ```Action``` to configure all search options
```enable``` default value is ```true```, ```onlyTextColumns``` default value is ```true```, and ```hiddenColumns``` default value is ```false```.
-Searching on boolean columns has benn disabled because EF Core 3.0 is not supporting it yet.
+## SearchOptions attributes
+
+Parameter | Description
+--------- | -----------
+Enabled (optional) | bool to enable searching on the grid
+OnlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones
+HiddenColumns (optional) | bool to enable searching on hidden columns
+SplittedWords (optional) | bool to enable search of any word contained in the search phrase on any column. The defaul behavior is to search the complete search phrase on any column.
+
+```Enabled``` default value is ```true```, ```OnlyTextColumns``` default value is ```true```, ```HiddenColumns``` default value is ```false```, and ```SplittedWords ``` default value is false.
+
+Searching on boolean columns has been disabled because EF Core 3.0 is not supporting it yet.
+
+# Disable diacritics distinction
+
+GridBlazor distinguishes among letters with diacritics by default. If you filter by the term "bru, it will return all records that contains "bru", but it won't returns any record containing "brú", "brû" or "brü".
+
+Anyway, it is possible to override the default behavior, so GridBlazor will return any record containing "brú", "brû" or "brü".
+
+The solution to be implemented for data stored in memory is as follows. You must create the static function that will remove diacritics and configure the ```GridCoreServer``` object:
+ 1. you must create the following static function with an string parameter and returning an string (other functions removing diacritics are also supported):
+ ```c#
+ public class StringUtils
+ {
+
+ ...
+
+ public static string RemoveDiacritics(string text)
+ {
+ var normalizedString = text.Normalize(NormalizationForm.FormD);
+ var stringBuilder = new StringBuilder();
+
+ foreach (var c in normalizedString)
+ {
+ var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
+ if (unicodeCategory != UnicodeCategory.NonSpacingMark)
+ {
+ stringBuilder.Append(c);
+ }
+ }
+
+ return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
+ }
+ }
+ ```
+ 2. and finally you must call the ```SetRemoveDiacritics``` method of the ```GridCoreServer``` class:
+ ```c#
+ var server = new GridCoreServer(Orders, query, true, "ordersGrid", columns)
+ .WithPaging(10)
+ .Filterable()
+ .SetRemoveDiacritics("RemoveDiacritics");
+ ```
[<- Selecting row](Selecting_row.md) | [Filtering ->](Filtering.md)
\ No newline at end of file
diff --git a/docs/blazor_odata/Searching.md b/docs/blazor_odata/Searching.md
index d0053c5e..9a0dc15a 100644
--- a/docs/blazor_odata/Searching.md
+++ b/docs/blazor_odata/Searching.md
@@ -22,9 +22,21 @@ Parameter | Description | Example
enable (optional) | bool to enable searching on the grid | Searchable(true, ...)
onlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones | Searchable(..., true, ...)
hiddenColumns (optional) | bool to enable searching on hidden columns | Searchable(..., true)
+searchOptions (optional) | ```Action``` to configure all search options
```enable``` default value is ```true```, ```onlyTextColumns``` default value is ```true```, and ```hiddenColumns``` default value is ```false```.
-Searching on boolean columns has benn disabled because EF Core 3.0 is not supporting it yet.
+## SearchOptions attributes
+
+Parameter | Description
+--------- | -----------
+Enabled (optional) | bool to enable searching on the grid
+OnlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones
+HiddenColumns (optional) | bool to enable searching on hidden columns
+SplittedWords (optional) | bool to enable search of any word contained in the search phrase on any column. The defaul behavior is to search the complete search phrase on any column.
+
+```Enabled``` default value is ```true```, ```OnlyTextColumns``` default value is ```true```, ```HiddenColumns``` default value is ```false```, and ```SplittedWords ``` default value is false.
+
+Searching on boolean columns has been disabled because EF Core 3.0 is not supporting it yet.
[<- Selecting row](Selecting_row.md) | [Filtering ->](Filtering.md)
\ No newline at end of file
diff --git a/docs/blazor_server/Searching.md b/docs/blazor_server/Searching.md
index f4ae887d..349ef90e 100644
--- a/docs/blazor_server/Searching.md
+++ b/docs/blazor_server/Searching.md
@@ -106,9 +106,100 @@ Parameter | Description | Example
enable (optional) | bool to enable searching on the grid | Searchable(true, ...)
onlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones | Searchable(..., true, ...)
hiddenColumns (optional) | bool to enable searching on hidden columns | Searchable(..., true)
+searchOptions (optional) | ```Action``` to configure all search options
```enable``` default value is ```true```, ```onlyTextColumns``` default value is ```true```, and ```hiddenColumns``` default value is ```false```.
-Searching on boolean columns has benn disabled because EF Core 3.0 is not supporting it yet.
+## SearchOptions attributes
+
+Parameter | Description
+--------- | -----------
+Enabled (optional) | bool to enable searching on the grid
+OnlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones
+HiddenColumns (optional) | bool to enable searching on hidden columns
+SplittedWords (optional) | bool to enable search of any word contained in the search phrase on any column. The defaul behavior is to search the complete search phrase on any column.
+
+```Enabled``` default value is ```true```, ```OnlyTextColumns``` default value is ```true```, ```HiddenColumns``` default value is ```false```, and ```SplittedWords ``` default value is false.
+
+Searching on boolean columns has been disabled because EF Core 3.0 is not supporting it yet.
+
+# Disable diacritics distinction
+
+GridBlazor distinguishes among letters with diacritics by default. If you filter by the term "bru, it will return all records that contains "bru", but it won't returns any record containing "brú", "brû" or "brü".
+
+Anyway, it is possible to override the default behavior, so GridBlazor will return any record containing "brú", "brû" or "brü".
+
+The solution to be implemented will depend on the back-end used to return the grid data. I will describe the following 2 cases:
+
+- for grids using Entity Framework Core it will be necessary to create a stored function on the database, a static method that will call it and configure the ```GridCoreServer``` object:
+ 1. For SQL Server you should open the ```SQL Server Studio Management``` tool and execute the following SQL query on your database to create the ```RemoveDiacritics``` function:
+ ```SQL
+ CREATE FUNCTION [dbo].[RemoveDiacritics] (
+ @input varchar(max)
+ ) RETURNS varchar(max)
+
+ AS BEGIN
+ DECLARE @result VARCHAR(max);
+
+ select @result = @input collate SQL_Latin1_General_CP1253_CI_AI
+
+ return @result
+ END
+ ```
+ 2. then you must create the following static function with an string parameter and returning an string. This function will only work from a LINQ expression and it will call the stored function defined before:
+ ```c#
+ public class NorthwindDbContext : GridShared.Data.SharedDbContext
+ {
+
+ ...
+
+ [DbFunction("RemoveDiacritics", "dbo")]
+ public static string RemoveDiacritics(string input)
+ {
+ throw new NotImplementedException("This method can only be called using LINQ");
+ }
+ }
+ ```
+ 3. and finally you must call the ```SetRemoveDiacritics``` method of the ```GridCoreServer``` class:
+ ```c#
+ var server = new GridCoreServer(repository.GetAll(), query, true, "ordersGrid", columns)
+ .WithPaging(10)
+ .Filterable()
+ .SetRemoveDiacritics("RemoveDiacritics");
+ ```
+
+- for data stored in memory you must create the static function that will remove diacritics and configure the ```GridCoreServer``` object:
+ 1. you must create the following static function with an string parameter and returning an string (other functions removing diacritics are also supported):
+ ```c#
+ public class StringUtils
+ {
+
+ ...
+
+ public static string RemoveDiacritics(string text)
+ {
+ var normalizedString = text.Normalize(NormalizationForm.FormD);
+ var stringBuilder = new StringBuilder();
+
+ foreach (var c in normalizedString)
+ {
+ var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
+ if (unicodeCategory != UnicodeCategory.NonSpacingMark)
+ {
+ stringBuilder.Append(c);
+ }
+ }
+
+ return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
+ }
+ }
+ ```
+ 2. and finally you must call the ```SetRemoveDiacritics``` method of the ```GridCoreServer``` class:
+ ```c#
+ var server = new GridCoreServer(repository.GetAll(), query, true, "ordersGrid", columns)
+ .WithPaging(10)
+ .Filterable()
+ .SetRemoveDiacritics("RemoveDiacritics");
+ ```
[<- Selecting row](Selecting_row.md) | [Filtering ->](Filtering.md)
\ No newline at end of file
diff --git a/docs/dotnetcore/Searching.md b/docs/dotnetcore/Searching.md
index 3820de80..69a88f8d 100644
--- a/docs/dotnetcore/Searching.md
+++ b/docs/dotnetcore/Searching.md
@@ -25,10 +25,22 @@ Parameter | Description | Example
enable (optional) | bool to enable searching on the grid | Searchable(true, ...)
onlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones | Searchable(..., true, ...)
hiddenColumns (optional) | bool to enable searching on hidden columns | Searchable(..., true)
+searchOptions (optional) | ```Action``` to configure all search options
```enable``` default value is ```true```, ```onlyTextColumns``` default value is ```true```, and ```hiddenColumns``` default value is ```false```.
-Searching on boolean columns has benn disabled because EF Core 3.0 is not supporting it yet.
+## SearchOptions attributes
+
+Parameter | Description
+--------- | -----------
+Enabled (optional) | bool to enable searching on the grid
+OnlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones
+HiddenColumns (optional) | bool to enable searching on hidden columns
+SplittedWords (optional) | bool to enable search of any word contained in the search phrase on any column. The defaul behavior is to search the complete search phrase on any column.
+
+```Enabled``` default value is ```true```, ```OnlyTextColumns``` default value is ```true```, ```HiddenColumns``` default value is ```false```, and ```SplittedWords ``` default value is false.
+
+Searching on boolean columns has been disabled because EF Core 3.0 is not supporting it yet.
**IMPORTANT**: If you get an **InvalidOperationException** while searching with a message similar to:
```text
diff --git a/docs/dotnetcore_blazor/Searching.md b/docs/dotnetcore_blazor/Searching.md
index 434e6fa1..de31901e 100644
--- a/docs/dotnetcore_blazor/Searching.md
+++ b/docs/dotnetcore_blazor/Searching.md
@@ -30,10 +30,22 @@ Parameter | Description | Example
enable (optional) | bool to enable searching on the grid | Searchable(true, ...)
onlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones | Searchable(..., true, ...)
hiddenColumns (optional) | bool to enable searching on hidden columns | Searchable(..., true)
+searchOptions (optional) | ```Action``` to configure all search options
```enable``` default value is ```true```, ```onlyTextColumns``` default value is ```true```, and ```hiddenColumns``` default value is ```false```.
-Searching on boolean columns has benn disabled because EF Core 3.0 is not supporting it yet.
+## SearchOptions attributes
+
+Parameter | Description
+--------- | -----------
+Enabled (optional) | bool to enable searching on the grid
+OnlyTextColumns (optional) | bool to enable searching on all collumns or just on string ones
+HiddenColumns (optional) | bool to enable searching on hidden columns
+SplittedWords (optional) | bool to enable search of any word contained in the search phrase on any column. The defaul behavior is to search the complete search phrase on any column.
+
+```Enabled``` default value is ```true```, ```OnlyTextColumns``` default value is ```true```, ```HiddenColumns``` default value is ```false```, and ```SplittedWords ``` default value is false.
+
+Searching on boolean columns has been disabled because EF Core 3.0 is not supporting it yet.
# Disable diacritics distinction