【问题标题】:jqGrid to reorder column by index name dynamicallyjqGrid通过索引名称动态重新排序列
【发布时间】:2017-02-08 21:41:02
【问题描述】:

我想按column namecolumn index (string) 而不是column index (int) 对jqGrid 列进行重新排序。我看过这个 API

$("#list").jqGrid("remapColumns", [0,1,12,3,14,5,6,7,8,11,2], true);

它使用列索引号,但问题是在更改 jqGrid 的顺序后重新索引并更改索引。所以我正在寻找接受列名而不是整数值的 API。

这是我获取列名的代码

var columnModels = grid.jqGrid('getGridParam', 'colModel');
var user_visibalColumn = [];
for (var columnModelIndex in columnModels) {
    var columnModel = columnModels[columnModelIndex];
    if (!columnModel.hidden) {
        user_visibalColumn.push(columnModel.name);         
    }
}
//console.log(user_visibalColumn); 

所以经过一段时间的事件后,我想用上面的user_visibalColumn 数组列触发getGridParam

这可能吗?如果没有,那么有办法添加 HTML 数据标签 col-id 以便我可以检索 col-id。

我见过this answer,但我无法弄清楚如何实现restoreColumnState

任何建议都会很有帮助。

谢谢。

【问题讨论】:

    标签: jquery jqgrid jqgrid-php


    【解决方案1】:

    请写出您使用(或可以使用)的 jqGrid 版本以及来自 jqGrid 的哪个分支。此外,重要的是写下您使用的 jqGrid 的哪个分支(free jqGrid、商业Gurrido jqGrid JS 或版本

    我同意使用列索引而不是列名的问题。这就是为什么我对免费的 jqGrid 分支进行了许多更改的原因,我从 4.7.1 版中的主要旧分支商业化(参见the post)开始开发它。我介绍了方法remapColumnsByName和旧方法remapColumnsThe answer提供the demo,演示了remapColumnsByName的用法。此外,免费的 jqGrid 在内部主要保存列名而不是列索引,并且它具有帮助器选项iColByName,这有助于通过列名获取列的当前索引。

    我建议您将使用的 jqGrid 升级到当前 (4.13.4) 版本的免费 jqGrid 并使用remapColumnsByName

    【讨论】:

    • 我关注 IST,所以只是去睡觉(这里是凌晨 1 点),如果你不介意可以在早上检查你的 aswer 吗?我使用的是jqGrid js version 5.1.1,它是免费版本。
    • @RaunakGupta:别着急。我们可以在早上或下周继续。重要的是要了解 5.1.1 不是免费的 至少对于商业用途,即使源代码已打开(请参阅here)。这是 Guriddo jqGrid JS。您可以在文件的第一条评论上看到许可证。你必须付出代价,你可以找到here。您可以通过阅读许可协议并在互联网上搜索有关该主题的详细信息来检查问题。
    • 感谢@Oleg 指出这一点,我不知道这一点,我将降级我的jqgrid 库。顺便说一句,我对 jqGrid 非常陌生,事实上这是我第一次使用它,作为 Laravel 开发人员,我使用 yajra datatables 包,它用于解决我的所有目的。
    • 感谢remapColumnsByNamejqGrid 4.13.5-pre 合作。
    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多