いくつかの情報を表示するグリッドがあり、複数の行を選択して[注文の追加]ボタンをクリックすると、1番目から2番目のグリッドまでの選択した行が表示されるため、呼び出しを行わずに2番目のグリッドにそれらの行が表示されます。カートアプリケーション?jqGridで可能ですか?
さらに、さらに行を選択した場合は、その2番目のグリッドに追加する必要があります。
誰かがそれを達成する方法について何か考えがあれば..私は本当に感謝します...ありがとう!
いくつかの情報を表示するグリッドがあり、複数の行を選択して[注文の追加]ボタンをクリックすると、1番目から2番目のグリッドまでの選択した行が表示されるため、呼び出しを行わずに2番目のグリッドにそれらの行が表示されます。カートアプリケーション?jqGridで可能ですか?
さらに、さらに行を選択した場合は、その2番目のグリッドに追加する必要があります。
誰かがそれを達成する方法について何か考えがあれば..私は本当に感謝します...ありがとう!
addRowDataメソッドは、他のメソッドよりも要件に適しているように思われます。2番目のグリッドに1番目のグリッドと同じ列があるとします。次に、「ショッピングカートに追加」ボタンの「クリック」イベントハンドルで、次のように実行できます。
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回追加する場合は、2番目のグリッドに2つの商品(同じID)を2回入れるのではなく、アイテムカウンターを増やす必要があります。
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);
}
}
上記のコード例はテストしていませんが、機能することを願っています。