我是新手,通过调用jqGrid
从 Servlet 填充数据并显示在. 这工作正常没问题。但是,在我的情况下,列名是动态的,因为我将日期显示为列名。Ajax
jqGrid
所以,我在搜索 Dynamic colModel
for时发现了下面的代码jqGRid
。
但是,这会导致两个 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
但如果它可以在单个服务器调用中完成会更好。