1

非表示の列が表示されているときに列インデックスが必要で、columnShowing イベントで処理しています。ドキュメントによると、ui.columnIndex を使用して取得できます。しかし、それは ui.columnKey が適切な値を与えているところで未定義として来ています。

ここにコードがあります

    {
    name: "Hiding",
    columnChooserHeight: 400,
    columnChooserWidth: 400,
    columnShowing: function (evt, ui) {
       alert(ui.columnIndex);                                         
    }
   }

ここに問題を示すフィドルがあります。

クリックして最初の非表示の列を確認すると、ui.columnIndex は未定義であり、ui.columnKey には値があります。

4

1 に答える 1

2

このイベントでは、 または のいずれcolumnIndexかが提供されますcolumnKey。ほとんどの場合columnKey、 が使用されます (インデックスはキーがない場合にのみ使用されます。これは、グリッドが既存の HTML テーブルにバインドされている場合に発生し、列が自動生成されます)。あなたの場合、常にキーを取得すると安全に想定できるため、次のようにしてインデックスを取得してください。

{
    name: 'Hiding',
    columnShowing: function (evt, ui) {
        alert(ui.owner.grid.options.columns.indexOf(ui.owner.grid.columnByKey(ui.columnKey)));
        // use $.inArray(ui.owner.grid.columnByKey(ui.columnKey),ui.owner.grid.options.columns) instead indexOf() for IE<9 support
        alert(ui.columnKey)
    }
}

フィドル: http://jsfiddle.net/damyanpetev/qrsZm/

このフォーラムの投稿には、イベント ハンドラーの外部で使用できる列インデックスを取得するための他のオプションもあります。

于 2013-12-12T11:56:45.970 に答える