Any tips to maximize performance of filtering larger data sets? In my testing I am experiencing lag when filtering (gif available at https://raw.githubusercontent.com/austineric/Misc/master/Demo.gif).
In the gif example:
- GridDataSource is IEnumerable<TechnicanDataEntryExtension>
- GridDataSource holds 500,000 records
- I am typing the word "hearing"
- I am running the the app locally from visual studio so web server latency isn't involved, I would expect lag to be worse there
<TelerikGrid Data="@GridDataSource" OnUpdate="@UpdateHandler" OnDelete="@DeleteHandler" Class="cst-grid" FilterMode="@GridFilterMode.FilterRow" EditMode="@GridEditMode.Inline" Sortable="true" SelectionMode="@GridSelectionMode.Single" Pageable="true" PageSize="10"> <GridColumns> <GridCommandColumn Width="120px;"> <GridCommandButton Command="Edit" Class="cst-grid-command-button">Edit</GridCommandButton> <GridCommandButton Command="Save" ShowInEdit="true" Class="cst-grid-command-button">Save</GridCommandButton> <GridCommandButton Command="Cancel" ShowInEdit="true" Class="cst-grid-command-button">Cancel</GridCommandButton> <GridCommandButton Command="Delete" Class="cst-grid-command-button">Delete</GridCommandButton> </GridCommandColumn> <GridColumn Field="@nameof(GridModel.RowID)" Editable="false" Width="0" /> <GridColumn Field="@nameof(GridModel.EntryDate)" Title="Entry Date" Editable="false" /> <GridColumn Field="@nameof(GridModel.UserID)" Editable="false" Width="0" /> <GridColumn Field="@nameof(GridModel.Username)" Editable="false" /> <GridColumn Field="@nameof(GridModel.Category)"> <EditorTemplate> @{ CurrentlyEditedRow = (TechnicianDataEntryExtension)context; <select class="form-control" @bind="@CurrentlyEditedRow.Category"> @{ foreach (Categories Category in CategoryDropdownDataSource) { if (CurrentlyEditedRow.Category == Category.Category) { <option value="@Category.Category" selected="selected">@Category.Category</option> } else { <option value="@Category.Category">@Category.Category</option> } } } </select> } </EditorTemplate> </GridColumn> <GridColumn Field="@nameof(GridModel.SerialNumber)"> <EditorTemplate> @{ CurrentlyEditedRow = (TechnicianDataEntryExtension)context; <input class="form-control" @bind-value="CurrentlyEditedRow.SerialNumber" maxlength="10" /> } </EditorTemplate> </GridColumn> </GridColumns> </TelerikGrid>
I can implement workarounds to decrease the number of records in the grid but in the event where I need to give it larger numbers of records are there any best practices or recommendations to minimize filter lag?