私は初心者で、呼び出しをjqGrid
介してサーブレットからデータを入力し、に表示しています。これで問題なく動作します。しかし、私の場合、日付を列名として表示しているため、列名は動的です。Ajax
jqGrid
そのため、Dynamic colModel
for を検索すると、以下のコードが見つかりましたjqGRid
。
しかし、これにより2つのAjax呼び出しが発生します。動的列ヘッダーを使用したことのある人はいますか?
<script type="text/javascript">
var grid = $("#rowsList");
var url = '/getRowList?Id=9371&fromDate=2011-12-06&toDate=2012-12-06';
jQuery().ready(function (){
$.ajax({
url: url,
dataType: 'json',
success: function(response) {
prepareGrid(response);
},
error: function(request, textStatus, errorThrown) {
alert(textStatus + " : " + request.responseText);
}
});
});
function prepareGrid(response){
if (response) {
if (!response.Error) {
var colData = getColumnsData(response.columnData);
colData = eval('{' + colData + '}');
grid.jqGrid({ // This makes second server call
url: url,
datatype: 'json',
mtype: 'POST',
colModel: colData,
colNames: response.columnData,
height : 'auto',
pager: '#pager',
viewrecords: true,
loadtext: 'Loading',
sortorder: "asc",
gridview: true,
altRows: true,
cellEdit: false,
caption: 'Data List'
});
}
}
}
/**
* Creates column data for jqgrid
*/
function getColumnsData(Data) {
// return column data array in jqGrid compatible format
// This works fine
}
</script>
最初の呼び出しとセットで列名のみを返すという私の他の選択colModels
ですが、単一のサーバー呼び出しで実行できるとよいでしょう。