У меня есть небольшая сетка Kendo, настроенная как показано ниже. В невероятно загадочном ключе действие Controller для «Добавить новое», то есть BatchCreate
, вызывается только тогда, когда вы нажимаете другую командную кнопку после нажатия «Добавить новое». Например. a) Нажмите «Добавить новое», ничего не происходит. б) Перезагрузите страницу и нажмите «Добавить новое», и ничего не получится, затем нажмите «Сохранить изменения», затем вызывается метод BatchCreate
.Панель инструментов Kendo Кнопка AddNew не работает, когда сетка фильтруется
Моя сетка выглядит так, скопирована почти прямо из примера у них:
@(Html.Kendo().Grid<LocationIndexItem>()
.Name("index-grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.IsActive).ClientTemplate(
"<input type='checkbox' value='#= IsActive #' " +
"# if (IsActive) { #" +
"checked='checked'" +
"# } #" +
"/>").Width(70);
columns.Bound(p => p.Remarks);
columns.Command(cmd => cmd.Destroy());
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
//.Events(e => e.Edit("gridEdit"))
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Filterable()
.Pageable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Batch(true)
.PageSize(20)
.Events(events => events.Error("errorHandler"))
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("Read", "Location"))
.Update(update => update.Action("BatchUpdate", "Location"))
.Create(create => create.Action("BatchCreate", "Location"))
.Destroy(destroy => destroy.Action("BatchDelete", "Location"))
)
)
Другой сетки точно так же, за одним исключением дополнительного поля, отлично работает.
JUST IN: Фильтр сетки со следующим кодом, похоже, вызывает вышеуказанное поведение. Когда я комментирую комментируемой линию, $("#ParkadeId").change()
вне, сетка ведет себя как обычно: Казалось бы, установив фильтр на сетке Кендо
$(function() {
$("#ParkadeId").change(function() {
var value = $(this).val();
var grid = $("#index-grid").data("kendoGrid");
if (value) {
grid.dataSource.filter({ field: "ParkadeId", operator: "eq", value: parseInt(value) });
} else {
grid.dataSource.filter({});
}
});
//$("#ParkadeId").change();
});
ломает Добавить функциональность.
Выглядит хорошо. Теперь я должен найти способ сохранить текущий фильтр и применить его снова после добавления новой записи. – ProfK
Я забыл добавить, Add New - это стандартная панель инструментов Add New. Любая идея функции, которую я могу подключить, чтобы отключить фильтр при нажатии этой кнопки? – ProfK