IvanJosipovic / BlazorTable

Blazor Table Component with Sorting, Paging and Filtering
https://BlazorTable.netlify.app
MIT License
540 stars 109 forks source link

[Feat] Global search targeting substrings #396

Open Benjathing opened 1 year ago

Benjathing commented 1 year ago

Describe the Feature Because Global Search is filters on any sub-string, it causes some unintended behaviour when a particular value is a sub-string of another value in the same column. In particular, searching "male" when "female" is also a valid value in a gender column.

Ideally, it would be possible to configure global search's starts-with vs contains behaviour, and additionally allow the use of meta-characters/wildcards so the user can specify the format of what they want to match on

To Reproduce

@page "/Bug152"

<Table TableItem="PersonData" Items="data" ShowSearchBar="true" ShowFooter="true">
    <Column TableItem="PersonData" Title="Gender" Field="@(x => x.Gender)" Sortable="false" Filterable="true" SetFooterValue="Count" />
</Table>

@code
{
    private PersonData[] data;

    protected override void OnInitialized()
    {
        data = new PersonData[]
        {
            new PersonData()
            {
                Gender = "Male"
            },
            new PersonData()
            {
                Gender = "Female"
            }
        };
    }

    public class PersonData
    {
        public string Gender { get; set; }
    }
}

Expected behavior Searching "male" or "^male" would not return the Female result.