2012-03-15 107 views
0

この質問は複数回聞かれたかもしれませんが、jqgridのセル値を動的に変更できるかどうかを知りたいですか?jqGridのセル値を動的に変更する方法はありますか?

私は基本的に、JSon文字列を介してデータが読み込まれているグリッドを持っています。特定の列の一部の行では、値は「null」です。どの行idが先行しているかを知っていることが1つの問題であり、その「null」を他のものに変更できることです。例えば。 "null"を "Not Applicable"に変更してください。

すべてのサポートをいただければ幸いです。ありがとう。

+0

JSONデータはどの形式ですか? 'jsonReader'を使うか、[標準形式](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data#json_data)を使っていますか? JSONデータを変更できるようにするには、入力データの形式を知っている必要があります。どのように 'null'として送信されますか:' null'または '' null ''として? – Oleg

答えて

2

値を変更することは、この状況で本当に必要なものだとは思いません。自分でcustom formatterを作成する必要があります。

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

これはちょっと基本的なサンプル実装ですが、わかりやすい説明が必要です。

+0

それは動作するようになった。クライアント側ではなくサーバー側で操作を行いました。とにかくありがとうございます... – pundit

+1

@pundit:あなたが他の人の時間を過ごす理由と質問を投稿した後、あなた自身が解決策を持っているかどうか質問してください** 8分**? – Oleg

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によって処理されます。

関連する問題