jqGrid之单选

文章介绍了在jqGrid中遇到多选功能与前端框架可能存在的冲突问题,提出了一种解决方案:通过自定义列添加radio按钮来实现单选,并给出了相关代码示例。在删除操作时,通过检查radio选中状态获取选中行数据。

jqGrid不支持单选,本来也想借鉴网上的做法,通过对checkbox的处理来间接实现。但在实践中却发现设置了multiSelect后,checkbox并没有显示出来,怀疑是跟页面的其它前端框架如bootstrap有冲突,索性换个思路来实现:

在一列自行添加radio按钮,这列就起名为“操作”吧,代码如下:

 colModel: [
                {
                    name: 'ID', label: 'ID', index: 'ID', width: 80, align: 'left', hidden: true, sortable: false
                }
                , {
                    name: 'operate', label: '操作', width: 200, formatter: function (cellvalue, options, rowObject) {
                        return "<input type='radio' name='rdSelect' style='width:100px' >&nbsp;<a href='#' onclick=addGroup()>新增</a>&nbsp;<a href='#' onclick=delGroup()>删除</a>"
                    }
                }

            ],

....

那么如果判断哪行是选中呢?比如要删除一行时,可以用下面的方法:

 function delGroup() {

        var rowDatas = jQuery("#Jqgrid_Group").jqGrid("getRowData");
        var arrRadios = document.getElementsByName("rdSelect");
        for (var i = 0; i < rowDatas.length; i++) {

            if (arrRadios[i].checked) {
                _rowData = rowDatas[i];
            }
            
            
        }

        if (typeof (_rowData) == "undefined") {
            alert("请选择要删除的整行");
            return;
        }

        然后就可以从_rowData中获取你需要的任何列的值了,这样看上去是不是比checkbox效果更好呢?
         

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值