jqgrid: как установить параметры панели инструментов на основе значения столбца в строке

У меня есть тип поля столбца со значениями (редактируемый, только для чтения). все строки будут иметь одно из этих значений.

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

как я могу достичь этого в jqgrid.

    Если вы правильно поняли, что хотите включить / отключить кнопки «Изменить» или «Удалить» навигатора на основе выбранной строки. Чтобы у вас было введите описание изображения здесь

    если ни одна строка не выбрана, или выбранная строка не редактируется, либо стандартная панель инструментов навигатора введите описание изображения здесь

    если строка редактируется.

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

    Реализация может

    var myGrid = jQuery("#list"); myGrid.jqGrid({ /* definition of jqGrid */ beforeSelectRow: function(rowid) { var selRowId = $(this).getGridParam('selrow'), tr = $("#"+rowid); // you can use getCell or getRowData to examine the contain of // the selected row to decide whether the row is editable or not if (selRowId !== rowid && !tr.hasClass('not-editable-row')) { // eneble the "Edit" button in the navigator $("#edit_" + this.id).removeClass('ui-state-disabled'); $("#del_" + this.id).removeClass('ui-state-disabled'); } else { // unselect previous selected row // disable the "Edit" and "Del" button in the navigator $("#edit_" + this.id).addClass('ui-state-disabled'); $("#del_" + this.id).addClass('ui-state-disabled'); } return true; // allow selection or unselection }, loadComplete: function() { // just one example how to mark some rows as non-editable is to add // some class like 'not-editable-row' which we test in beforeSelectRow $("tr.jqgrow:even",this).addClass('not-editable-row'); } }).jqGrid('navGrid','#pager'); // disable "Edit" and "Delete" button at the beginning $("#edit_" + myGrid[0].id).addClass('ui-state-disabled'); $("#del_" + myGrid[0].id).addClass('ui-state-disabled'); 

    Чтобы включить / отключить кнопки «Изменить» и «Дель», мы добавляем / удаляем class «ui-state-disabled» на кнопках панели инструментов навигатора. В приведенном выше коде я отмечаю все строки четными числами как «нередактируемые». В вашем случае вы можете использовать любые другие критерии, которые имеют больше смысла.

    Здесь вы можете увидеть демо.

    Давайте будем гением компьютера.