这是 Razor 模板:
@(Html.Kendo().Grid<SubmitGridViewModel>()
.Name(gridId)
.Columns(columns => {
columns.Bound(p => p.LastName);
columns.Bound(p => p.FirstName);
columns.Command(command => command.Destroy()).Width(110);
})
.ToolBar(toolbar => toolbar.Create())
.Editable(editable =>
{
editable.Mode(GridEditMode.InCell);
editable.DisplayDeleteConfirmation(false);
})
.Navigatable()
.Sortable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.AutoSync(true)
.Batch(true)
.Model(model => model.Id(p => p.Id))
.Read(o => o.Action(AppRoute.SubmitGridRead.ToMethod(), AppRoute.SubmitGridRead.ToController()))
.Create(o => o.Action(AppRoute.SubmitGridCreate.ToMethod(), AppRoute.SubmitGridCreate.ToController()))
.Update(o => o.Action(AppRoute.SubmitGridUpdate.ToMethod(), AppRoute.SubmitGridUpdate.ToController()))
.Destroy(o => o.Action(AppRoute.SubmitGridDestroy.ToMethod(), AppRoute.SubmitGridDestroy.ToController()))
)
)
当我将 LastName 字段聚焦并打开以进行编辑时,我点击 Tab 打开 FirstName 字段进行编辑,它就是这样做的。但它会立即关闭 FirstName 字段进行编辑并再次关注 LastName 字段。当我注释掉.AutoSync(true)
问题时,问题就消失了。
我认为它正在发生,因为异步 httprequest 回来了,并以某种方式与现场焦点搞砸了。
我该如何解决这个问题?
我会创建一个 JSFiddle,但它需要依赖 AJAX 数据源来显示问题。