Javascript JQGrid会在单元格中自动隐藏带有false的行
如果某个单元格的值为false,我将尝试隐藏该行,到目前为止,我已尝试使用如下格式设置程序:Javascript JQGrid会在单元格中自动隐藏带有false的行,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,如果某个单元格的值为false,我将尝试隐藏该行,到目前为止,我已尝试使用如下格式设置程序: $("#list").jqGrid({ //datatype: 'clientSide', colNames: ["Id", "Descrizione", "Data Vendita", "Disabilitato", "PISTA", "Piano Tariffario", "Data Validità P
$("#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,但它没有删除它,它可以看到它何时为false,何时为false,因为if函数工作得很好。另一种方法是使用each函数扫描tr和td数据,并在false时隐藏
$('.hidefalse').click(function() {
$("#grid tr").each(function () {
var thisrow = $(this);
$('td', this).each(function () {
var value = $(this).text();
if (value == 'false') {
$(thisrow).fadeOut();
}
})
})
})
要使其自动化,请取消单击功能
另一种方法是使用each函数扫描tr和td数据,并在错误时隐藏
$('.hidefalse').click(function() {
$("#grid tr").each(function () {
var thisrow = $(this);
$('td', this).each(function () {
var value = $(this).text();
if (value == 'false') {
$(thisrow).fadeOut();
}
})
})
})
要使其自动化,请取消单击功能
最好在数据被jqGrid处理之前,删除
disponibilita
列中有false
值的数据。对于数据类型:“local”
只需修改输入数据,然后使用数据
参数修改输入。在从服务器加载数据的情况下,可以在处理前使用回调来修改从服务器返回的数据
只有在由于某些其他原因而无法实现上述场景时,才可以使用以下形式的rowattr
回调
rowattr: function (item) { // !rowObject.disponibilita in your case
if (item.closed) {
return {style: "display:none;"};
}
}
见或以“类”形式:
看。您可以看到这两种解决方案都有效,但页面大小不正确。最好删除false
值在disponibilita
列中的数据,然后由jqGrid处理。对于数据类型:“local”
只需修改输入数据,然后使用数据
参数修改输入。在从服务器加载数据的情况下,可以在处理前使用回调来修改从服务器返回的数据
只有在由于某些其他原因而无法实现上述场景时,才可以使用以下形式的rowattr
回调
rowattr: function (item) { // !rowObject.disponibilita in your case
if (item.closed) {
return {style: "display:none;"};
}
}
见或以“类”形式:
看。您可以看到这两种解决方案都有效,但页面大小不正确。您是否计划下次删除此问题?当前的问题没有描述jqGrid的哪个版本和哪个fork(,或者版本1中的旧jqGrid)我删除了这个问题,因为我没有看到答案,我的问题一开始就错了2)我按照您的建议使用了rowattr,在类中,我尝试使用.ui小部件内容隐藏行。rowClass{display:“none”}但是它没有隐藏它,它是否有一个特定的命令来隐藏它?不管怎样,它应该是display:none;。。。。。。很抱歉,我仍然不知道您使用的是哪个datatype
,以及您使用的是哪个版本的jqGrid。首选的方法是从数据中删除项目,而不是隐藏它,但必须知道所请求的信息。如果您确实使用了rowattr
,那么您应该发布您尝试过但未成功的代码。因为我没有其他信息,所以我向您展示了如何在我的回答中正确使用rowattr
。您是否计划下次删除此问题?当前的问题没有描述jqGrid的哪个版本和哪个fork(,或者版本1中的旧jqGrid)我删除了这个问题,因为我没有看到答案,我的问题一开始就错了2)我按照您的建议使用了rowattr,在类中,我尝试使用.ui小部件内容隐藏行。rowClass{display:“none”}但是它没有隐藏它,它是否有一个特定的命令来隐藏它?不管怎样,它应该是display:none;。。。。。。很抱歉,我仍然不知道您使用的是哪个datatype
,以及您使用的是哪个版本的jqGrid。首选的方法是从数据中删除项目,而不是隐藏它,但必须知道所请求的信息。如果您确实使用了rowattr
,那么您应该发布您尝试过但未成功的代码。因为我没有其他信息,所以我将在我的回答中说明如何正确使用rowattr
。