You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jqWidget表格:根据行数据禁用/隐藏指定行复选框

解决方案:jqWidget表格根据行数据控制复选框显示/隐藏

核心思路

利用jqWidget的自定义渲染函数(行渲染或单元格渲染),根据每行数据中的disableCheckbox字段值,动态控制复选框DOM元素的显示状态。


方法1:通过rowRenderer全局控制行内复选框

直接重写行的渲染逻辑,修改默认生成的复选框元素样式:

$("#jqxGrid").jqxGrid({
    width: '100%',
    height: '600px',
    source: dataAdapter, // 你的数据源适配器
    selectionmode: 'checkbox',
    columns: [
        { text: 'ID', datafield: 'id', width: 80 },
        { text: '名称', datafield: 'name', width: 150 },
        // 其他列配置...
    ],
    rowRenderer: function(row, data) {
        // 获取默认行HTML结构
        let rowHtml = this.defaultRowRenderer(row, data);
        // 根据disableCheckbox值处理复选框
        if (data.disableCheckbox === true) {
            // 替换复选框元素为隐藏状态
            rowHtml = rowHtml.replace('<div class="jqx-grid-checkbox"></div>', '<div class="jqx-grid-checkbox" style="display: none;"></div>');
        }
        return rowHtml;
    }
});

方法2:针对复选框列使用cellRenderer

自定义复选框列的单元格渲染逻辑,更精准控制:

$("#jqxGrid").jqxGrid({
    width: '100%',
    height: '600px',
    source: dataAdapter,
    selectionmode: 'checkbox',
    columns: [
        // 自定义复选框列
        { 
            text: '', 
            datafield: '', 
            width: 50, 
            cellRenderer: function(row, columnfield, value, defaulthtml, columnproperties, rowdata) {
                // 判断当前行是否需要隐藏复选框
                if (rowdata.disableCheckbox === true) {
                    return '<div style="display: none;"></div>';
                } else {
                    // 返回默认复选框HTML
                    return defaulthtml;
                }
            }
        },
        // 业务列配置
        { text: 'ID', datafield: 'id', width: 80 },
        { text: '名称', datafield: 'name', width: 150 },
    ]
});

补充注意事项

  1. 数据类型兼容:如果你的disableCheckbox是字符串类型(如"true"/"false"),需要将判断条件改为rowdata.disableCheckbox === "true"
  2. 禁止选中兜底:若隐藏复选框后仍需确保该行无法被选中,可添加行选中事件拦截:
    $("#jqxGrid").on('rowselect', function(event) {
        const rowdata = event.args.row;
        if (rowdata.disableCheckbox === true) {
            $("#jqxGrid").jqxGrid('unselectrow', event.args.rowindex);
        }
    });
    

内容的提问来源于stack exchange,提问作者Abdelmajid Hafidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:45:45