2012-03-15 155 views
0

這個問題可能已經被問過很多次了,但我想知道是否可以動態更改jqgrid的單元格值?有沒有辦法來動態更改jqGrid的單元格值?

我基本上有一個網格,它正在通過JSon字符串加載數據。在特定列的某些行上,該值可能爲「空」。因此,知道哪個行ID是一個問題,然後能夠將該「空」改變爲其他的。例如。將「空」更改爲「不適用」。

所有幫助將不勝感激。謝謝。

+0

哪種格式具有JSON數據?你使用了一些'jsonReader'還是使用[標準格式](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data)?爲了能夠修改JSON數據,必須知道輸入數據的格式。如何發送'null':作爲'null'還是''null''? – Oleg 2012-03-15 14:52:31

回答

2

我不認爲改變價值就是你在這種情況下真正需要的。你應該創建你自己的custom formatter。它看起來更不像是:

var nullFormatter = function(cellvalue, options, rowObject) { 
    if (cellValue == null) 
     return "Not Applicable"; 
    else 
     return cellValue; 
}; 

這只是非常基本的,簡單的實現,但它應該給你一個想法。

+0

得到它的工作。操作在服務器端而不是客戶端。謝謝反正...... – pundit 2012-03-15 14:58:22

+1

@pundit:爲什麼你花時間給其他人,問你自己的問題,如果你自己有解決方案** 8分鐘**你發佈問題後? – Oleg 2012-03-15 15:17:38

3

我會建議你使用beforeProcessing回調,它使用簡單,功能強大。例如,如果你在the standard JSON format

{ 
    "total": "xxx", 
    "page": "yyy", 
    "records": "zzz", 
    "rows" : [ 
     {"id": "1", "cell": ["cell11", "null", "cell13"]}, 
     {"id": "2", "cell": ["cell21", "cell22", null]}, 
     ... 
    ] 
} 

來自服務器的數據,你可以這樣做以下

beforeProcessing: function (data) { 
    var rows = data.rows, cRows = rows.length, row, iRow, cCol, iCol, cell; 
    for (iRow = 0; iRow < cRows; iRow++) { 
     row = rows[iRow].cell; 
     for (iCol = 0, cCol = row.length; iCol < cCol; iCol++) { 
      cell = row[iCol]; 
      if (cell === null || cell === "null") { 
       row[iCol] = "Not Applicable"; 
      } 
     } 
    } 
} 

你可以修改數據從服務器數據之前返回的路上將由jqGrid處理。

相關問題