1

古いバージョンの jqGrid (4.6.0) から新しいバージョン (4.9.1) に移行しようとしています。

resizeStart イベントがトリガーされないことに注意しましたが、resizeStop は正常に動作します。それは大丈夫ですか?

よくわかりませんが、バグは「フィードバック」機能の呼び出しにあるようです

$bDiv = $(self.bDiv)

feedback.call(getGridComponent(COMPONENT_NAMES.BODY_TABLE, $bDiv), "resizeStart", x, i);

feedback = function () {
        // short form of $.jgrid.feedback to save usage this.p as the first parameter
        var args = $.makeArray(arguments);
        args.unshift("");
        args.unshift("");

        args.unshift(this.p); //this.p is undefined! this is dom table

        return jgrid.feedback.apply(this, args);
    };
4

1 に答える 1

1

バグ報告ありがとうございます!この線

feedback.call(getGridComponent(COMPONENT_NAMES.BODY_TABLE, $bDiv), "resizeStart", x, i);

に固定する必要があります

feedback.call(getGridComponent(COMPONENT_NAMES.BODY_TABLE, $bDiv)[0], "resizeStart", x, i);

修正を GitHubに投稿しました。無料の jqGrid の最新ソースをリロードするだけです。

resizeStartおよびresizeStopコールバックとjqGridResizeStartイベントを使用jqGridResizeStopするには、次のコードを使用できます。

$("#grid").jqGrid({
    ...
    resizeStart: function (e, iCol) {
        ...
    },
    resizeStop: function (newWidth, iCol) {
        ...
    }
}).bind("jqGridResizeStart", function (e, eOrg, iCol) {
    ...
}).bind("jqGridResizeStop", function (e, newWidth, iCol) {
    ...
});

したがって、コールバックまたはイベントのいずれかを使用できます。1 つのグリッドに対して登録できるコールバックは 1 つだけですが、jQuery イベント ( およびその他) を複数回バインドできjqGridResizeStartますjqGridResizeStop。jqGrid が作成されるでもバインディングを行うことができます。空<table>はすでに存在しているはずです。

于 2015-08-04T09:24:39.133 に答える