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

该事件将提供columnIndexcolumnKey。在大多数情况下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 回答