我有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;
}
}
答案 0 :(得分:1)
您对列DoFlip
使用自定义格式化程序。自定义格式化程序包含options
和rowObject
个参数。如果您使用免费的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.IsActive
或rowObject[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