4

私は剣道グリッドを使用しており、行の編集中にその行が編集可能かどうかを確認しています.編集できない場合、選択した行を編集不可にする方法edit.グリッドのチェックイン機能を実行しています.

コード

$("#grid").kendoGrid({
    dataSource : ds,
    selectable : "multiple",
    sortable   : true,
    filterable : false,
    reorderable: true,
    scrollable : false,
    toolbar    : ["create"],
    columns: [
                { field: "event", width: "120px", title: "Event Type"},
                { field: "event_id", width: "120px", title: "Event ID"},
                { field: "addr_no_or_type", width: "120px", title:"Address"},
                { field: "event_rate", width: "100px", title: "Rate"},
                { field: "sched_date", width: "100px", title: "Scheduled"},
                { field: "complete_date", width: "100px", title:"Completed"},
                { field: "serial_no", width: "100px", title: "Serial #"},
                { command: ["edit", "destroy"], title: "Options", width: "170px"}
            ],
    editable: "inline",
    edit    : function(e){
        selectedRowIndex        =   $("#grid").data("kendoGrid").select().index();
        if (selectedRowIndex >= 0) {
            var grid            =   $("#grid").data("kendoGrid");
            var selectedItem    =   grid.dataItem(grid.select());
            var slno            =   selectedItem.serial_no;
            if(slno!=0){
                grid.cancelRow();
            }
        }
    }
});

しかし、これを使用すると、コンソールに次のエラーが表示されます。

Uncaught TypeError: Cannot call method 'delegate' of null 

誰かがそれを解決する方法を提案できますか.ありがとう.

4

3 に答える 3

0

同意します、私は Change イベントを介して列の無効化機能を達成しました。コードは次のとおりです。

 function onRowSelect(val) {
    var curCell = $("#abc").find(".k-state-selected");
    if (curCell[0].innerText.indexOf('ABCD')>-1) {
        curCell[0].disabled = true;
    }

...


@(Html.Kendo().Grid<xyz>()
.Name("abc")  
.Selectable()   
.Events(e=>e.Change("onRowSelect"))
于 2015-11-26T09:37:33.100 に答える