jqgrid: изменить редактируемую ячейку на недоступную для редактирования в соответствии со значением ячейки при редактировании формы - PullRequest
2 голосов
/ 18 января 2012

Моя проблема в том, что я хочу изменить ячейку, которую можно редактировать или нет, в форме редактирования в соответствии с содержимым ячейки строки, выбранной для редактирования. Я использовал пример Олега для этой ссылки: JQGrid: динамически установить ячейку в не редактируемую ячейку на основе содержимого , чтобы выяснить, как изменить ячейку с редактируемой на нередактируемую, но я не могу получить значение ячейки для сравнения и решить, хочу ли я изменить опцию редактирования ячейки.

ОБНОВЛЕННЫЙ КОД:

var Setcelluneditable=function(form) {
        return function (form) {
        var id = jQuery(list).getGridParam('selrow');
        var ret = jQuery(list).jqGrid('getRowData',id);
        alert("Arrived="+ret.Arrived);
        if (ret.Arrived=='Yes')
         {alert("hello"+id);
         jQuery(list).setCell(id,'Arrived','',{color:'red'}, editable:'0'});}
     }
     }; 

jQuery(list).jqGrid('navGrid',pager,{edit:true,add:true,del:true,search:false,view:true, reload:true},
                {
                    width:colwidth,
                    height:"auto",
                    reloadAfterSubmit:true,
                    closeAfterEdit: true,
                    recreateForm: true,
                    ajaxEditOptions: {cache: false},
            beforeInitData : Setcelluneditable("#editmod")
                },
                {
                            width:colwidth,
                            height:"auto",
                            reloadAfterSubmit:true,
                            closeAfterAdd: true,
                            recreateForm: true,
                            drag: false
                },
                {},
                {},
                {},
                {}); 

Кажется, это не работает, потому что я изменяю уже созданную сетку.

Ответы [ 2 ]

5 голосов
/ 21 января 2012

Я думаю, что нашел способ сделать это, но он не кажется мне лучшим из возможных:

onSelectRow: function(id){ 
        var ret = jQuery(list).jqGrid('getRowData',id);
        if (ret.Arrived=='Yes')
         {
            jQuery(list).setColProp('Arrived',{editable:false});}
        else {  jQuery(list).setColProp('Arrived',{editable:true});}}

Я меняю ColProp каждый раз, когда выбирается строка.

0 голосов
/ 04 августа 2014
selRowId = $(list).jqGrid ('getGridParam', 'selrow');
var cm = $(list).jqGrid('getGridParam', 'colModel');
for(x=0; x<cm.length; x++){
    if(cm[x].name == 'ID'){
        $('#' + selRowId + '_' + cm[x].name).attr('disabled', true);
    }
}

код в событии onSelectRow

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