2015-09-28 32 views
0

我有jqgrid其中有4列。如果bool值爲false,如何隱藏或禁用行單元格?

{ 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」爲false,那麼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

什麼是**列'DoFlip'的**裏面?不能禁用文本片段,但可以禁用例如「」控制。隱藏單元格也沒有意義,但是可以隱藏它被包裝在某個元素內部的單元格的內容*(例如,在''內部)。哪個版本的jqGrid和你使用哪個分支?例如,免費的jqGrid可以將''列中的內容封裝在'colModel'中定義的'autoResizable:true'中。或者,您可以使用自定義格式器。 – Oleg

+0

DoFlip是類似於 Hiba

+0

是在DoFlip – Hiba

回答

1

您使用自定義格式化程序的DoFlip列。自定義格式化程序包含optionsrowObject參數。如果您將使用免費的jqGrid 4.9.2而不是復古版本的jqGrid 4.4.4,則可以使用options參數的rowData屬性來訪問該行的已解析輸入數據。因此,您可以使用options.rowData.IsActive訪問輸入數據的IsActive的值。 options.rowData的格式不取決於loadonce: true選項的用法,並且對於jqGrid的所有參數datatype"xml","json","local"或其他)的所有值都是相同的。

如果您必須使用jqGrid 4.4.4,則必須使用rowObject,其中包含輸入數據,其格式與您使用的相同。它可能是一些細節取決於您是否使用輸入數據的XML,JSON或對象(datatype: "local")以及輸入數據的格式是否爲repeatitems: true。此外,是否使用loadonce: true也很重要。以任何方式rowObject.IsActive或類似rowObject[2]rowObject.IsActive !== undefined ? rowObject.IsActive : rowObject[2]可以爲您提供所需的數據。

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 
相關問題