javascript - JQGrid 自动隐藏单元格中带有 false 的行

标签 javascript jquery jqgrid

如果行中的单元格具有错误值,我会尝试隐藏该行,到目前为止,我已经尝试使用如下格式化程序:

$("#list").jqGrid({
            //datatype: 'clientSide',
            colNames: ["Id", "Descrizione", "Data Vendita", "Disabilitato", "PISTA", 
                       "Piano Tariffario", "Data Validità Piano Tariffario", 
                       "PROMO", "Data Validità Promo", "CANONE CLIENTE NETTO MESE", 
                       "Vendibile", "Migrato"],
            colModel: [
                { name: "id"},
                { name: "descrizione", editable: true},
                { name: "dataInizVendita", editable: true, formatter:vendita},                          
                { name: "disabilitato", editable: true},
                { name: "pista", editable: true},
                { name: "pianoTariffario", editable: true},
                { name: "dataInizPiano", editable: true, formatter:piano},              
                { name: "promo", editable: true},
                { name: "dataInizPromo", editable: true, formatter:promo},
                { name: "canoneNetto", editable: true},
                { name: "disponibilita", editable: true, formatter:mostra},
                { name: "migrato", editable: true, width:150, sortable: false, resizable:false, formatter:bottone}          
            ],
            formatter: 'date', 
            formatoptions: { srcformat: 'd/m/Y', newformat: 'd/m/Y'},
            sortname: "id",
            sortorder: "asc"

        })

我关心的格式化程序是mostra,如果 disponibilita 为 false,它必须隐藏该行!

function mostra (cellvalue, options, rowObject)
{               

    if(rowObject.disponibilita == false)
    {               
        $("#"+rowObject.id).hide();
    }
    $("#list").trigger("reloadGrid");
    return rowObject.disponibilita;
}

我也尝试过使用delRowdata,但它不会删除它,并且它可以看到什么时候为假,什么时候不是,因为if函数完美地工作

最佳答案

最好删除数据,这些数据在disponibilita数据之前具有false值将由jqGrid处理。在 datatype: "local" 的情况下,应该只修改输入数据,然后使用 data 参数修改输入。如果从服务器加载数据,可以使用 beforeProcessing 回调来修改从服务器返回的数据。

只有当由于某些其他原因无法实现上述场景时,才可以使用以下形式的 rowattr 回调

rowattr: function (item) { // !rowObject.disponibilita in your case
    if (item.closed) {
        return {style: "display:none;"};
    }
}

参见the demo或以“类”形式:

rowattr: function (item) {
    if (item.closed) {
        return {"class": "my-hide"};
    }
}

参见another demo 。您可以看到这两种解决方案都有效,但页面大小不正确。

关于javascript - JQGrid 自动隐藏单元格中带有 false 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35297863/

相关文章:

javascript - 使用 NodeJS 在 Express 上请求数据事件不起作用

使用 val() 时特殊字符的 Javascript/jQuery 编码

jquery - 实现单选按钮的正确方法

javascript - 如何在 jqGrid 的请求中将 postData._search 设置为 true?

javascript - 如何在查找对话框中按下回车键时进行 jqGrid 搜索

javascript - 独立的铯时间轴小部件

javascript - 在不重新加载页面的情况下更改图像 src

javascript - 在 jqGrid 上添加自定义按钮以打开其他一些 URL

javascript - 无法将选项传递给 Commander.js 中的命令

javascript - 对话框中的 jquery 火灾事件