Jqgrid: как динамически изменить форматер? - PullRequest
1 голос
/ 29 ноября 2011

Моя проблема с Jqgrid мало уникальна. Я сказал, что я делаю после loadComplete, я показываю некоторые из редактируемых строк как

$("#correction-grid").editRow(rowid, true);

Но я не хочу, чтобы это происходило с определенными столбцами, если одно из значений столбца оказывается «неправильным» поэтому я попробовал это

 loadComplete: function (rowid, status) {
   $("#correction-grid > tbody > tr").each(function (rowid) {
   $("#correction-grid").editRow(rowid, true);
   var value = $('#correction-grid').jqGrid('getCell',rowid,'product_group_code');
   console.log(value)
   if(value == 'MISC'){
    $('#correction-grid').setColProp('x_code',{edittype:false}); 
        $('#correction-grid').setColProp('yr_code',{edittype:false}); 
        $('#correction-grid').setColProp('diesel',{edittype:false}); 
            }
          });

, где x_code - это поле выбора с dataEvents, а yr_code и дизель форматируются как текстовое значение. Если я пытаюсь применить эту логику в формах, все строки становятся доступными только для чтения. Поэтому я попытался на loadComplete. Любые идеи или предложения будут очень полезны ..!

Спасибо Sai

1 Ответ

1 голос
/ 29 ноября 2011

Полагаю, ваша ошибка в том, что вы вызываете editRow до изменения свойства edittype и не сбрасываете значение до true в случае value !== 'MISC'. Вы можете исправить код так:

loadComplete: function () {
    var $this = $(this);    // $("#correction-grid")
    $("> tbody > tr", this).each(function (rowid) {
        var product_group_code = $this.jqGrid('getCell', rowid, 'product_group_code'),
            isEditable = product_group_code !== 'MISC';
        console.log(product_group_code);
        $this.setColProp('x_code', {edittype: isEditable});
        $this.setColProp('yr_code', {edittype: isEditable});
        $this.setColProp('diesel', {edittype: isEditable});
        $this.editRow(rowid, true);
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...