У меня есть jqrid, и я использую встроенное редактирование. Проблема в том, что одна из ячеек доступна только для чтения, а ее значение основано на другой:
{ name: 'ActivityId', index: 'ActivityId', width: 200, align:'left', editable: true, editrules: { required : true }, edittype:"select", editoptions: { dataUrl: '/Invoice/GetActivities/' + organisationId,
buildSelect: function(data) {
var response = jQuery.parseJSON(data);
var s = '<select>';
if(response.rows && response.rows.length) {
for (var i = 0, l=response.rows.length; i<l ; i++) {
var ri = response.rows[i];
s += '<option value="'+ri.Id+'">'+ri.Descriptor+'</option>';
}
}
return s + "</select>";
return s;
}
} },
{ name: 'PriceGroup', index: 'PriceGroup', align: 'center', editable: false },
Таким образом, значение в столбце PriceGroup
рассчитывается на основе значения ActivityId
.
Так что это нормально при загрузке сетки, но после выполнения редактирования эта ячейка имеет значение, относящееся к предыдущему ActivityId
.
Правильное значение восстанавливается после того, как я вручную нажму кнопку обновить.
Мне интересно, как получить правильное значение после редактирования. Должен ли я как-то обновить сетку после правок в коде? Как бы вы это сделали? Есть ли лучший способ?