如果bool值为false,如何隐藏或禁用行单元格?

时间:2015-09-28 10:21:14

标签: jqgrid

我有jqgrid,其中有4个col。

{ name: "SaudId", index: "SaudId", editable: false, hidden:true},
{ name: "SaudName", index: "SaudName", editable: true },
{ name: "IsActive", index: "IsActive", editable: true },
{ name: "DoFlip", index: "DoFlip", editable: true },

我想要" IsActive"是假的,然后DoFlip不会显示或禁用。我怎么能这样做?

{
    name: "DoFlip",
    align: "center",
    sortable: false,
    title: false,
    fixed: true,
    search: false,
    formatter: function (cellValue, options, rowObject) {
        debugger;
        var markup = "<a title=\"%ToolTip%\" href=%Href%;>%Text%</a>";
        var replacements = {
            "%Text%": "<i class='fa fa-pencil'></i>",
          //
        };
        markup = markup.replace(/%\w+%/g, function (all) {
            return replacements[all];
        });
        return markup;
    }
}

2 个答案:

答案 0 :(得分:1)

您对列DoFlip使用自定义格式化程序。自定义格式化程序包含optionsrowObject个参数。如果您使用免费的jqGrid 4.9.2而不是复古版jqGrid 4.4.4,您可以使用rowData参数的options属性来访问该行的已解析输入数据。因此,您可以使用options.rowData.IsActive来访问输入数据的IsActive中的值。 options.rowData的格式不取决于loadonce: true选项的使用情况,而且jqGrid的datatype参数的所有值都相同("xml",{{ 1}},"json"或其他)。

如果必须使用jqGrid 4.4.4,则必须使用包含输入数据"local",其格式与您使用的相同。可能是某些细节取决于您是否使用输入数据的XML,JSON或对象(rowObject)以及输入数据是否采用格式datatype: "local"。此外,您是否使用repeatitems: true非常重要。以任何方式loadonce: true或类似rowObject.IsActiverowObject[2]的内容都可以为您提供所需的数据。

答案 1 :(得分:0)

在这种情况下,您需要获取行的ID。

var ids = $mygrid.jqGrid('getDataIDs');

然后循环你需要

for (var i = 0; i < ids.length; i++) {
                  var rowID = i + 1;
                  var mycolumValue = $("#" + rowID + "_myfirstcolumn").attr("disabled", "disabled");
}

//here myfirstcolumn is first column in jqgrid