0

jqGridが含まれているページがいくつかあり、そのすべてにデフォルトのonSelectRowEventHandler関数が定義されています。

これらのページのいくつかで、部分ビュー(@Html.Partial("SpecialGridScripts");)にドロップし、ドキュメントレディハンドラーで、2番目のイベントハンドラーをselectrowにバインドします。ユーザーが行を選択すると、元のイベントハンドラーとカスタムイベントハンドラーの両方が起動するはずです。

私がこれまでに試したこと(機能しません):

$(document).ready(function () {

    jQuery.extend(jQuery.jgrid.defaults, {

        onSelectAll: function (ids, selected) {
            $(this).triggerHandler("selectAll.jqGrid", [ids, selected]);
        },
        onSelectRow: function (id, selected) {
            $(this).triggerHandler("selectRow.jqGrid", [id, selected]);
        },

    });

    $('#myGrid').bind('selectRow.jqGrid', function (event, id, selected) {
        UpdateVisibility();
    });

});

このjqgrid複数イベントハンドラーの例に基づく

4

1 に答える 1

1

私は自分でこれを解決しました:

$(document).ready(function () {

    jQuery.extend(jQuery.jgrid.defaults, {
    onSelectAll: function (ids, selected) {
        $(this).triggerHandler("selectAll.jqGrid", [ids, selected]);
    },
    onSelectRow: function (id, selected) {
        $(this).triggerHandler("selectRow.jqGrid", [id, selected]);
    },

});

$('#myGrid').on('jqGridSelectRow jqGridSelectAll', function (event, id, selected) {
        UpdateVisibility();
    });

});

jqGridバージョン>4.3.2では、jQueryイベントを使用するため、jqGridSelectRowおよびjqGridSelectAllにその場でバインドできます。私が投稿したリンクの解決策は、jqGrid<バージョン4.3.2にのみ適用されると思います。

于 2013-02-21T15:43:57.830 に答える