Мне нужно разработать сетку с использованием jqGrid и PHP, что имеет 4 столбца: Продукт , количество , цена и количество . Имя продукта извлекается из базы данных. Если пользователь редактирует столбцы «Количество и цена», ячейка количества должна быть автоматически изменена путем умножения столбцов « Количество и цена» . Я пробовал:
var grid = $("#reportTable"); ........ afterSaveCell: function (rowid, name, val, iRow, iCol) { grid.jqGrid("setCell", rowid, "amount", val, ""); calculateTotal(); }
Обратите внимание, что calculateTotal () может правильно рассчитать итоговое количество столбца Quantity без какой-либо ошибки и отлично показать на нижнем колонтитуле сетки.
Я предполагаю, что вы используете редактирование ячейки . В случае, когда обратный вызов afterSaveCell является действительно хорошим местом для обновления расчетной amount
столбца на основе текущих значений из quantity
и price
колонок. Соответствующий код может быть примерно следующего
afterSaveCell: function (rowid, cellname, value) { var quantity, price, $this; if (cellname === 'quantity' || cellname === 'price') { $this = $(this); quantity = parseFloat($this.jqGrid("getCell", rowid, 'quantity')); price = parseFloat($this.jqGrid("getCell", rowid, 'price')); $this.jqGrid("setCell", rowid, 'amount', quantity * price); } }
Демонстрация делает почти то же самое, но вычисляет «total» как сумму «суммы» и «налога». Для теста вы должны изменить значение из столбца «сумма» или «налог» и убедиться, что «total» будет пересчитан.