У меня есть два определения сетки Кендо, в частичных представлениях, которые точно такие же, что и для модели частичного представления и модели элемента сетки. Только один из потом дает мне ошибку консоли JavaScript «Не удается прочитать свойство„DataSource“неопределенных» на строке кода:Почему `data (« kendoGrid »)` undefined?
$("#index-grid").data("kendoGrid").dataSource.bind("change", function (e) {...})
, а другой нет. Это не dataSource
, что не определено, но $("#index-grid").data("kendoGrid")
. Тем не менее, в другой идентичной сетке, я не получаю эту ошибку. Могут ли данные, предоставленные источнику данных, недействительными самой сетью? Определения сетки выглядеть следующим образом:
@model TerminalIndexModel
@using Kendo.Mvc.UI
@using ParkPay.Helm.ViewModels
@(Html.Kendo().Grid<TerminalIndexItem>()
.Name("index-grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' #= IsActive ? checked='checked':'' # class='chkbx' />").Title("Active").Width(70);
columns.Bound(p => p.Remarks);
columns.Command(cmd => cmd.Destroy()).Width(80);
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.HtmlAttributes(new { style = "height: 480px;"})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Filterable()
.Pageable()
.Scrollable()
.Sortable()
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Batch(true)
.PageSize(20)
.Events(events => events.Error("kendoGridErrorHandler"))
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("Read", "Terminal"))
.Update(update => update.Action("BatchUpdate", "Terminal"))
.Create(create => create.Action("BatchCreate", "Terminal"))
.Destroy(destroy => destroy.Action("BatchDelete", "Terminal"))
)
)
с той лишь разницей, TerminalIndexItem
против LocationIndexItem' and and
TerminalIndexModel versus
LocationIndexModel , and of course the controller names in the CRUD definitions,
Терминал versus
Location`. Я нахожусь в своем остроумие, находя разницу между двумя сетками.
do обе сетки имеют другое имя каждый? – pollirrata
Нет, они имеют одно и то же имя в разных папках. – ProfK
Есть ли разница в том, когда две сетки отображаются в зависимости от того, когда выполняется проблемная линия? Смысл, возможно ли, что для сетки, которая работает, она уже инициализируется, когда выполняется строка, а для проблемной сетки это не так? Кроме того, сетки с тем же именем не используются на одной странице одновременно, правильно? –