jqgrid单选复选框

时间:2011-07-20 01:48:37

标签: select jqgrid checkbox

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

我已将多选属性设置为true。但我无法取消选择之前选择的项目。有可能这样做吗?

由于

4 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:3)

你必须做更多的事情:

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;
        }

答案 2 :(得分:2)

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

答案 3 :(得分:1)

我知道这个问题已经过时了,但我在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设置

这就是我所需要的。它可能会帮助别人。