1

「カートに追加」の ajax 呼び出しを実行して、クリックした行の他の列から製品コード (行 ID) と数量を渡し、jqgrid 列をクリックするとカート ページにリダイレクトする方法を探しています。

によると https://github.com/free-jqgrid/jqGrid/wiki/improvement-of-formatter:-"showlink"

showlink フォーマッタが改良されたので使ってみました。

コルモデルをやってみた

{"label":"Add to cart",
"name":"Addtocrt_addtocrt","search":false,"sortable":false,
"viewable":false,"formatter":"showlink","formatoptions":{"showAction":addToCartOnClick
}}

と方法

function addToCartOnClick(rowId, iRow, iCol, cellValue, e) {
    var 
     $quantity = $('#' + $.jgrid.jqID(rowId) + '>td:nth-child(' + (iCol + 1) + ')'),
     quantityVal;
    if (iCol < 0) {
        quantityVal = 1;
    } else
        if ($quantity.find('>input').length === 0) {
            quantityVal = $quantity.text();
        }
        else {
            quantityVal = $quantity.find('>input').val();
        }
    window.location = 'Store/AddToCart?' + $.param({
        id: rowId,
        quantity: quantityVal
    });
}

addToCartOnClick は jree jqgrid では呼び出されません。

jqgrid 4.6 ダイナミックリンク フォーマッタで

onClick=addToCartOnClick 

ハイパーリンクがクリックされた場合にjqgrid行からURLにデータを渡す方法で説明されているように機能しました

無料の jqgrid addToCartOnClick では、dynamicLink フォーマッタからも呼び出されません。

メソッドを呼び出して、無料のjqgridでクリックされた行から列の値を取得する方法は?

4

1 に答える 1

2

showActionURL の部分のみを設定するために使用できます。オプションを使用する場合は、グローバル関数として定義されているマストを開始するためにjavascript:プレフィックス (回答を参照) を使用する必要があります。addToCartOnClick

of で新しいオプションonClickを使用することをお勧めします。あなたの質問を読んだ直後に、無料のjqGridのコードに対応する変更を加えました。GitHub から使用するソースを更新する必要があります。今、あなたは使用することができますformatoptionsformatter: "showlink"

{name: "Addtocrt_addtocrt", label: "Add to cart",
    search: false, sortable: false, viewable: false,
    formatter: "showlink",
    formatoptions: {
        onClick: function (options) {
            // object options contains properties, which could be helpful
            //    iCol - index of the column in colModel
            //    iRow - index of the row
            //    rowid
            //    cm - element of colModel
            //    cmName - the same as cm.name
            //    cellValue: the text inside of `<a>`
            //    a - DOM element of clicked <a>
            //    event - Event object of the click event
            location.href = "http://www.google.com/";
            return false; // it's important to suppress the default a action
        }
    }}
于 2015-04-05T10:57:26.603 に答える