Опция динамического выбора jqGrid - beforeEditCell не запускается - PullRequest
1 голос
/ 05 апреля 2010

Я создаю jqgrid с одним выпадающим столбцом. Мне нужно, чтобы параметры раскрывающихся столбцов изменялись динамически, поэтому я подумал, что могу перехватить событие beforeCellEdit.

однако, похоже, не стреляет. Любая идея о том, что я делаю не так? ошибки нет, и я проверил, что я включил jqgrid edit js файлы.

var lastsel2;
jQuery(document).ready(function(){ 
    jQuery("#projectList").jqGrid({
        datatype: 'json',
        url:'projectDrv.jsp',
        mtype: 'GET',
        height: 250,
        colNames:['Node','Proposal #', 'Status', 'Vendor', 'Actions'],
        colModel :[ 
          {name:'node', index:'node', width:100, editable:false, sortable:false},
          {name:'proposal', index:'proposal', width:100, editable:false, resizable:true }, 
          {name:'status', index:'status', width:100, resizable:true, sortable:false, editable:false  },
          {name:'vendor', index:'vendor', width:100, resizable:true, editable:false, sortable: false },
          {name:'actions', index:'actions', width:100, resizable:true, sortable:false, editable: true, edittype:"select" }
        ],
        pager: '#pager',
        rowNum: 10,
        sortname: 'proposal',
        sortorder: 'desc',
        viewrecords: true,
        onSelectRow: function(id){ 
          if (id && id!==lastsel2){ 
            jQuery('#projectList').jqGrid('restoreRow',lastsel2); 
            jQuery('#projectList').jqGrid('editRow',id,true); 
            lastsel2 = id; 
          } 
        }, 
        beforeEditCell: function(rowid, cellname, value, irow, icol) { 
          alert("before edit here " + rowid);
          // set editoptions here
        }

});

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Я полагаю, что причина того, чтоEditCell не запускается, состоит в том, что у вас нет "cellEdit: true" в вашей родительской сетке.

е:

    ...
    viewrecords: true,
    cellEdit: true,
    onSelectRow: function(id){ 
      if (id && id!==lastsel2){ 
        jQuery('#projectList').jqGrid('restoreRow',lastsel2); 
        jQuery('#projectList').jqGrid('editRow',id,true); 
        lastsel2 = id; 
      } 
    }, 
    beforeEditCell: function(rowid, cellname, value, irow, icol) { 
      alert("before edit here " + rowid);
      // set editoptions here
    }

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:cell_editing#properties

0 голосов
/ 05 апреля 2010

Вместо использования beforeEditCell вы можете рассмотреть возможность указания функции форматирования при вызове editRow:

jQuery('#projectList').jqGrid('editRow',id,true,formatEditors); 

Затем эту функцию можно использовать для настройки выпадающего списка:

function formatEditors(id) {
    // Initialize dropdown for the row, using jQuery selector:
    // jQuery("#" + id + "_actions", "#projectList")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...