【问题标题】:jqgrid single select checkboxjqgrid单选复选框
【发布时间】:2011-07-20 01:48:36
【问题描述】:

在 Jqgrid 中,我想限制用户在任何时候只能选择一个复选框。当用户选择多个复选框时,仅最后一次选择处于“已选择”状态,其余应自动取消选择。

我已将多选属性设置为 true。但我无法取消选择以前选择的项目。如果可以怎么办?

谢谢

【问题讨论】:

    标签: select jqgrid checkbox


    【解决方案1】:

    您可以使用事件 beforeSelectRow 并重置选择:

    beforeSelectRow: function(rowid, e)
    {
        jQuery("#list47").jqGrid('resetSelection');
        return(true);
    }
    

    我有一个fiddle 给你,你可以看看它是如何工作的。

    【讨论】:

    • 你需要添加这个: var myGrid = $("#list47"); $("#cb_"+myGrid[0].id).hide();隐藏多选按钮,如下所述:stackoverflow.com/questions/6212571/…
    • 如果分组处于活动状态(至少在这种形式下),它也将不起作用。
    • 这不允许在再次单击时取消选择,因为该修复将是: beforeSelectRow: function(rowid, e) { jQuery('#list47').jqGrid('getGridParam','selarrrow') != rowid) jQuery("#list47").jqGrid('resetSelection');返回(真); }
    【解决方案2】:

    你必须做更多的事情:

    1.multiboxonly 设置为true,将multiselect 设置为true

    2.定义事件onSelectRowbeforeSelectRow

    3.定义全局变量:var lastSel;


    OnSelectRowbeforeSelectRow 实现:

    onSelectRow: function (rowId, status, e) {
            if (rowId == lastSel) {
                $(this).jqGrid("resetSelection");
                lastSel = undefined;
                status = false;
            } else {
                lastSel = rowId;
            }
        },
    beforeSelectRow: function (rowId, e) {
                $(this).jqGrid("resetSelection");
                return true;
            }
    

    【讨论】:

      【解决方案3】:

      在每一列中都有一个复选框意味着您一次可以点击多个。您要求的基本上是 multiselect: false 行为,但带有复选框列 - 您确定在这种情况下您真的想要复选框吗?

      【讨论】:

      • +1,很高兴知道如果您单击未激活多选的行,则会弹出 onSelectRow 事件,因此您仍然可以处理选择。
      【解决方案4】:

      我知道这个问题很老,但我在Stack Post 中找到了更好的解决方案。

      你所要做的就是设置jqGrid的以下两个属性:

      multiselect:true // multi-select checkboxes appear
      
      multiboxonly:true // checkboxes act like radio buttons where only one is selected at a time
      

      我已将 LeftyX 制作的小提琴更新为在此 JsFiddle 处使用 multiboxonly 设置

      这正是我所需要的。它可能对其他人有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-04
        • 2012-01-25
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 2011-09-21
        • 2015-04-12
        相关资源
        最近更新 更多