首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JQGrid -多选

JQGrid -多选
EN

Stack Overflow用户
提问于 2010-11-16 00:30:33
回答 1查看 29.8K关注 0票数 6

JQGrid中的多选功能只允许多选或单选,而shift功能并不是我期望的shift select功能。我也不喜欢我们需要多选的组合框。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-16 00:59:52

2011年10月更新为使用4.0API,更正了shift-selection错误,简化了选择循环。在4.2.0中进行了测试。

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

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

Next: In gridComplete: function () {} set grid.jqGrid('hideCol', 'cb'); -如果您不需要复选框,这将隐藏它们。

Finally:主要部分

代码语言:javascript
运行
复制
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;
}

The End -有帮助的希望

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4186533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档