как отключить редактирование ячейки при двойном щелчке - PullRequest
0 голосов
/ 10 февраля 2012

как сделать ячейку недоступной для редактирования при двойном щелчке?ячейки доступны для редактирования одним щелчком мыши.

Я включил редактирование ячейки, используя следующий код:

 jQuery("#tree").jqGrid({
                url:'json/jsonSamplePots.json',
                datatype: "json",
                mtype:'GET',
                colNames: ["Task id", "Task no.", "Task name", "Priority", "Start", "End", "Effort(hrs)", "Actual start", "Actual end", "Actual effort(hrs)", "Baseline start", "Baseline end", "Baseline effort(hrs)", "Task type", "Link", "Resources", "Tag"],
                colModel: [
                    {name:'id',width: 30, editable:false, align:"right",sortable:false, hidden: true, key: true},
                    {name:'no',width:80, editable:false, align:"left", sortable:true, sorttype:"int"},
                    {name:'name', width:150, editable:true, sortable:true, sorttype:"text"},
                    {name:'priority', width:80, editable:true, align:"right", sortable:true, sorttype:"int"},
                    {name:'sDate', width:80, editable:true, align:"right", sortable:true, sorttype:"date"},
                    {name:'eDate', width:80, editable:true, align:"right", sortable:true, sorttype:"date"},
                    {name:'effort', width:80, editable:true, align:"right", sortable:true, sorttype:"int"},
                    {name:'asDate', width:80, editable:true, align:"right", sortable:true, sorttype:"date"},
                    {name:'aeDate', width:80, editable:true, align:"right", sortable:true, sorttype:"date"},
                    {name:'aeffort', width:80, editable:true, align:"right", sortable:true, sorttype:"int"},
                    {name:'bsDate', width:80, editable:true, align:"right", sortable:true, sorttype:"date"},
                    {name:'beDate', width:80, editable:true, align:"right", sortable:true, sorttype:"date"},
                    {name:'beffort', width:80, editable:true, align:"right", sortable:true, sorttype:"int"},
                    {name:'type', width:120, editable:true, align:"left", sortable:true, sorttype:"text"},
                    {name:'link', width:80, editable:true, align:"left", sortable:true, sorttype:"text"},
                    {name:'resources', width:300, editable:true, align:"left", sortable:true, sorttype:"int"},
                    {name:'ref', width:80, editable:true, align:"right", sortable:true, sorttype:"int"},
                ],
                rowNum:10,
                rowList:[10,20,30],
                pager: '#pcolch',
                sortname: 'no',
                treeGridModel:'adjacency',
                autowidth:false,
                sortorder: 'desc',
                caption:"<a href="#">Task</a>
                toolbar:[true,"top"],
                treeGrid: true,
                cellEdit: true,
                sortable: true,
                shrinkToFit :true, 
                //viewrecords: true, 
                height:'auto',
                ExpandColumn:'name',
                cellsubmit : 'clientArray',

1 Ответ

1 голос
/ 10 февраля 2012

Я предлагаю использовать редактирование строк вместо целлетайтинга. Некоторое время я боролся с этим, но редактирование ячеек не так гибко, как редактирование строк. С редактированием строки вы можете достичь той же цели, что и редактирование ячейки.

Вы можете использовать событие onCellSelect, чтобы включить «редактирование ячейки» (редактирование строки), и использовать параметр события, чтобы определить, является ли событие событием двойного щелчка. Я использовал нечто подобное в своем собственном проекте:

'onCellSelect' : function(rowId, iCol, cellcontent, e) {
    if(rowId && rowId !== lastsel && e.type != 'onDblClick') {
    $('#resultsgrid').jqGrid(
        'saveRow',
        lastsel,
        null,
        'clientArray',
        null,
        saveEditRow
    );

    $('#resultsgrid').jqGrid('restoreRow', lastsel);
    $('#resultsgrid').jqGrid('editRow', rowId, false);

    lastsel = rowId;
    }
}

Примечание, приведенное выше, является лишь примером, вы не можете скопировать / вставить его, чтобы использовать его в своем собственном проекте. Вы должны проверить это, если это работает для вас.

Не то чтобы onCellSelect не работал в режиме celledit.

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...