4

部分ビューに 2 つの剣道グリッド定義があり、部分ビュー モデルとグリッド アイテム モデルの保存はまったく同じです。そのうちの 1 つだけが、コード行で JavaScript コンソール エラー 'Cannot read property 'dataSource' of 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"))
                            )
)

唯一の違いは、TerminalIndexItemTerminalIndexModel LocationIndexModel LocationIndexItem' and andTerminal Location` との違いです。私は 2 つのグリッドの違いを見つけようとしています。versus, and of course the controller names in the CRUD definitions,versus

4

3 に答える 3

4

問題のある行が実行されるタイミングと関連して、2 つのグリッドが表示されるタイミングに違いはありますか? つまり、機能するグリッドの場合、行の実行時にすでに初期化されていて、問題のあるグリッドの場合は初期化されていない可能性はありますか?

于 2013-06-13T13:23:25.400 に答える