Извините, если на этот вопрос уже был дан ответ, но я не могу найти ответ, и я новичок в KendoUI.
У меня есть эта сетка MVC:
@(Html.Kendo()
.Grid(Model)
.Name("grid")
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Read(r => r.Action("Read", "Search"))
)
.Resizable(resize => resize.Columns(true))
.Selectable(selectable =>
{
selectable.Enabled(true);
selectable.Mode(GridSelectionMode.Single);
})
.HtmlAttributes(new { style = "height: 99%;" })
.Filterable(f => f.Mode(GridFilterMode.Row))
.Columns(columns =>
{
{
columns.Bound(c => c.DocumentType)
.Filterable(false)
.Width("150px")
.Title(@Localizer["SearchTableHeaderDocumentType"]);
columns.Bound(c => c.DocumentTypeLong)
.Filterable(true)
.Title(@Localizer["SearchTableHeaderDocumentTitle"])
.Filterable(ftb => ftb.Cell(cell => cell.Operator("contains").SuggestionOperator(FilterType.Contains)));
columns.Command(command =>
{
command.Custom(@Localizer["SearchTableOpenInD3Button"]).Click("open");
command.Custom(@Localizer["SearchTableReadButton"]).Click("read");
command.Custom(@Localizer["SearchTableEditButton"]).Click("edit");
});
})
)
Я использую .ServerOperation (false), поскольку я получаю только пару записей из базы данных (макс. 100), которые я хочу иметь возможность искать в сетке локально.
У меня есть кнопка поиска на странице:
var search = $("#search-field").val();
if (!search) return;
if (search.trim() === "") return;
var dataSource = $("#grid").data("kendoGrid").dataSource;
var parameters = {
searchFor: search
}
// call the search passing the parameters -> searchFor is the parameter name on the SearchController/Read method
dataSource.read(parameters);
Когда кнопка нажата, JS выше читает поле поиска, вызывает контроллер и возвращает данные JSON:
мой вопрос: как заставить сетку перезагрузиться после того, как данные были возвращены с моего контроллера? Я вижу ожидающую анимацию из сетки -> как только она останавливается, сетка пуста. Я предполагаю, что сетка вызывает какое-то событие или другое?
Или я все делаю неправильно? Может быть, есть лучший способ сделать это?
снимок экрана, когда я сначала ищу и получаю 3 документа, а затем ищу 8, как вы видите, я получаю 8 документов назад из поиска, но отображаю только первые 3?