jquery - JQGrid - 多选

标签 jquery jqgrid multi-select

JQGrid 中的多选仅允许多项选择或单一选择,并且移位功能不是我期望的移位选择功能。我也不喜欢我们需要具有多选功能的组合框。

我还可以使用什么其他解决方案进行多选?

最佳答案

[2011 年 10 月] 更新为使用 4.0 API,更正了类次选择错误,简化了选择循环。在 4.2.0 中测试。

<小时/>

如果像我一样,您需要在 jqgrid 中进行适当的多选 - 其中 ctrl 一次选择一行,select 选择多行,既不清除选择又选择 1 行 - 您已经找到了。

首先要做的事情:在网格定义中设置multiselect: true(我没有设置任何其他多选选项)

下一步:gridComplete: function () {} 中设置 grid.jqGrid('hideCol', 'cb'); - this如果您不需要复选框,则隐藏它们。

最后:主体部分

beforeSelectRow: function (rowid, e) {
    if (!e.ctrlKey && !e.shiftKey) {
        $("#grid").jqGrid('resetSelection');
    }
    else if (e.shiftKey) {
        var initialRowSelect = $("#grid").jqGrid('getGridParam', 'selrow');
        $("#grid").jqGrid('resetSelection');

        var CurrentSelectIndex = $("#grid").jqGrid('getInd', rowid);
        var InitialSelectIndex = $("#grid").jqGrid('getInd', initialRowSelect);
        var startID = "";
        var endID = "";
        if (CurrentSelectIndex > InitialSelectIndex) {
            startID = initialRowSelect;
            endID = rowid;
        }
        else {
            startID = rowid;
            endID = initialRowSelect;
        }

        var shouldSelectRow = false;
        $.each($("#grid").getDataIDs(), function(_, id){
            if ((shouldSelectRow = id == startID || shouldSelectRow)){
              $("#grid").jqGrid('setSelection', id, false);
            }
            return id != endID;                        
        });
    }
    return true;
}

结束 - 希望有帮助

关于jquery - JQGrid - 多选,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186533/

相关文章:

javascript - 单击 anchor 标记后,jQuery Mobile 不会移动到下一页

jquery - 尝试了解 jquery 的 jqgrid。如何更改 AJAX 调用的 URL?

jquery - jqGrid/ui-widget-overlay 阻止整个页面上的所有按钮和选项卡事件

jquery - 物化CSS |使用多选,无法预选所有选项

javascript - 将 `filterBy` 与动态选择列表一起使用

javascript - 如何将输入限制在某个值范围内

javascript - jquery switch 来更改附加到的列表

javascript - 抓取带有特定主题标签的推文?

jquery - 使用动态 colNames 和 colModel 时 colnames <> colmodel 的长度

php - WooCommerce 自定义字段 - 多选