jqGrid setCell вычисленное значение - PullRequest
4 голосов
/ 11 марта 2012

Мне нужно разработать сетку с использованием jqGrid и PHP, которая имеет 4 столбца: Продукт , Количество , Цена и Сумма .Название продукта извлекается из базы данных.Если пользователь редактирует столбцы Количество и Цена, ячейка сумма должна быть автоматически изменена путем умножения столбцов Количество и Цена .Я попытался сделать следующее:

var grid = $("#reportTable");

........

afterSaveCell: function (rowid, name, val, iRow, iCol) {
  grid.jqGrid("setCell", rowid, "amount", val, "");
  calculateTotal();
}

Обратите внимание, что CalculateTotal () может безошибочно вычислить общее резюме столбца Количество , иможет отлично отображаться в нижнем колонтитуле сетки.

1 Ответ

4 голосов
/ 11 марта 2012

Полагаю, вы используете редактирование ячейки . В случае, если обратный вызов 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);
    }
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...