Как заполнить выбранную строку с 1-го jqgrid до 2-го jqgrid? - PullRequest
0 голосов
/ 21 сентября 2010

У меня есть сетка, отображающая некоторую информацию, и когда я выбираю несколько строк и нажимаю кнопку добавления порядка, она должна отображать эти строки во 2-й сетке без каких-либо вызовов, потому что она просто показывает выбранную строку с 1-й по 2-ю сетку ....так же, как приложение корзины?Возможно ли это с помощью jqGrid?

Более того, если я выберу больше строк, он должен добавляться в эту 2-ю сетку.

Если у кого-то есть какие-либо идеи о том, как этого добиться ... Я действительно оцениваю...Thanks!

1 Ответ

1 голос
/ 22 сентября 2010

Мне кажется, что метод addRowData подходит вам лучше, чем другие. Давайте, 2-я сетка имеет те же столбцы, что и 1-я сетка. Затем в дескрипторе события «click» кнопки «добавить в корзину» вы можете сделать следующее:

var gridProducts = $("products");
var gridShoppingCart = $("cart");
var prodIds = gridProducts.jqGrid('getGridParam', 'selarrrow');
for (var iProd=0, lProd=prodIds.length; iProd<lProd; iProd++) {
    var prodId = prodIds[iProd];
    var prodData = gridProducts.jqGrid('getRowData', prodId);
    gridShoppingCart.jqGrid('addRowData', prodId, prodData);
}

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

Давайте во 2-й сетке у нас есть столбец с именем 'count'. В JavaScript очень легко добавить свойство к объекту, поэтому мы можем легко изменить приведенный выше код для следующего

var gridProducts = $("products");
var gridShoppingCart = $("cart");
var prodIds = gridProducts.jqGrid('getGridParam', 'selarrrow');
for (var iProd=0, lProd=prodIds.length; iProd<lProd; iProd++) {
    var prodId = prodIds[iProd];
    var prodData = gridProducts.jqGrid('getRowData', prodId);
    var cnt = gridShoppingCart.jqGrid('getCell', prodId, 'count');
    if (cnt) { // product exist
        gridShoppingCart.jqGrid('setCell', prodId, cnt+1);
    } else {
        prodData.count = 1;
        gridShoppingCart.jqGrid('addRowData', prodId, prodData);
    }
}

Я не тестирую приведенные выше примеры кода, но надеюсь, что они будут работать.

...