さて、私は髪を引き裂く準備が整いました。 JSONデータをjqGridにロードしていますが、 "loadonce"をtrueに設定してローカルに保ちます。ソートのデフォルトの内容を表示するだけで、ソートが正常に機能しますが、必要なものは、別の列の情報を使用して表示される内容を変更する列があります。たとえば、「デバイス」と「モデル」の列を持つ代わりに、この「デバイスモデル」のように、両方の列を1つの列に表示する必要があります。カスタムフォーマッタを使用します。jqGridローカルデータ並べ替えで情報が失われる
この場合、ソートすると「モデル」情報が失われ、「未定義」になります。あなたが見ることができるように、私は表示されると仮定だところだから、デバイス欄にかけ、その情報を「移動」モデルの列を非表示にし、
mdlTable = tableWrap.jqGrid({
url: loadURL,
datatype: 'json',
colNames: ['ID', 'Device', 'Description', 'IP', 'Model'],
colModel: [
{name:'id', index:'id', hidden:true, key:true},
{name:'device', index:'device', width:192,
formatter:function(value, options, rData){
var str = "<a href='/administration/mdl/vwDevice.aspx?device_id=";
str += rData[0] + "' target='_blank'>" + value;
if ('' != rData[4]) str += " - " + rData[4];
str += "</a>";
return str;
}
},
{name:'desc', index:'desc', width:256, sortable:false},
{name:'ip', index:'ip', width:96},
{name:'model', index:'model', hidden:true}
],
sortname: 'id',
viewrecords: true,
loadonce: true,
viewsortcols: [true,'vertical',true],
gridview: true,
ignoreCase: true
})
.navGrid('#deviceList_footer', {edit:false, add:false, del:false, cloneToTop:true});
:ここに私のコードの一部です。読み込み時には問題ありませんが、並べ替えや検索をしてビューを更新すると、何らかの理由でデータの「コピー」が失われます。私がモデル列を表示すると、そこに残っている情報はうまく残っています。それは単に定義されていない値を取得するデバイス列です。
私は "reloadGrid"をトリガしようとしましたが、助けにはなりません。私もunformat関数を追加しようとしましたが、私はそこで何ができるのか分かりません。私は基本的にちょうど$(cellobject).html()を返しました - それは明らかに機能しませんでした。
編集:追加のサンプルJSONデータ
{ "rows" : [{
"id" : "181",
"cell" : ["181", "Router A", "some description", "55.444.33.222", "Model 1"]
}, {
"id" : "291",
"cell" : ["291", "Router B", "some description", "55.333.22.444", "Model 2"]
}, {
"id" : "1346",
"cell" : ["1346", "Router C", "some description", "55.111.44.333", "Model 3"]
}, {
"id" : "1999",
"cell" : ["1999", "Router D", "some description", "55.222.11.000", "Model 4"]
}
]}
問題を再現するために使用できるテストJSONデータをいくつか含めることができますか? – Oleg
テストJSONデータを追加 – ilia