2017-10-18 164 views
0

我想用select編輯型有條件色列文本有條件color列。如果我使用自定義格式化程序,那麼值會發生變化下面是我的代碼片段不起作用,如何使用選擇編輯型和無自定義格式

function generateEventHandlerGrid(eventsJson){ 
     var eventGrid = $("#eventGrid"); 
      eventGrid.jqGrid({ 
       datatype: 'local', 
       data: eventsJson.eventInfo, 
      jsonReader: {repeatitems: false}, 
    colNames: ['Event Category', 'Event Creation'], 
{name: 'eventCategory', index: 'eventCategory',align:"center"}, 
{name: 'enabled', index: 'enabled', width:"100px",align:"center",editable:true,edittype: 'select', 
       editoptions: {value: "1:Enable;0:Disable"}, formatter: function (cellvalue, options, rowObject){ 
        if (rowObject.enabled == 1){ 
         var cellHtml = "<span style='color:" + "red" + "' originalValue='" + rowObject.enabled + "'>" + "Enable" + "</span>"; 
         return cellHtml; 
        }else{ 
         var cellHtml = "<span style='color:" + "green" + "' originalValue='" + rowObject.enabled + "'>" + "Disable" + "</span>"; 
         return cellHtml; 
        } 
       }}], 
    viewrecords: true, 
    gridview: true, 
    rownumbers: true, 
    shrinkToFit: false, 
       height: strMinimumHeight, 
       editurl: "clientArray", 
       restoreAfterSelect: false, 
       loadonce: true, 
    } 

如何設置文本顏色基於值沒有自定義格式化程序?

+0

這是非常難以閱讀的代碼,你貼有cellattr更換formatter。順便說一句,代碼也是bug:colModel在'colNames'後面缺少。請包括關於jqGrid有關jqGrid的**版**的信息,您可以使用(可以使用)和** fork **([free jqGrid](https://github.com/)自由的jqGrid/jqGrid的),商業[Guriddo的jqGrid JS](http://guriddo.net/?page_id=103334)或舊的jqGrid在版本<= 4.7) – Oleg

+0

我已經發布小塊代碼。它包含很大的代碼,因此不容易粘貼整個。我正在使用getRowData來取回數據。 –

+0

如何從自定義格式化程序獲取我的原始值?我是新來的jqgrid –

回答

1

自定義格式的目標是格式化的單元格的內容。您嘗試什麼在當前的代碼做在電池的外部DOM元素上設置style屬性的。最好的功能是cellattr回調。因此,您仍然可以使用某些格式化程序,例如,將內容格式化爲日期,並且仍然設置某些樣式或類,這會更改單元格的屬性。

cellattr回調的參數列表完全依賴從版本和jqGrid的的叉子,你用哪個。你可以嘗試用下面的代碼

cellattr: function (rowid, cellValue, rowData, cm, item) { 
    return " style='color:" + (rowData.enabled == 1 ? "red" : "green") + "'"; 
} 
+0

工程很好。謝謝。還有一個問題,當我想用​​相同的值對行進行着色時該怎麼辦?或者改變整行的背景? –

+0

@DarshanShah:不客氣!可以使用'rowattr'回調函數(作爲網格選項,而不是列內)來改變某些行的屬性(顏色等)。參見[老答案](https://stackoverflow.com/a/10531680/315935)與相應的舊[DEMO](http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridChangeRowBackgroundBasedOnCheckboxes3.htm)。此外,我建議你升級到[免費jqGrid](https://github.com/free-jqgrid/jqGrid)4.15.1 - 我開發的jqGrid的分支,如果你還沒有使用它的話。 – Oleg

+0

是的,我已經找到了相同的鏈接,並實施並正常工作。謝謝。 –

相關問題