Мне кажется, что метод 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);
}
}
Я не тестирую приведенные выше примеры кода, но надеюсь, что они будут работать.