我已经做了足够多的研究,但仍然是一个谜。
我从服务器中提取了表模式,以创建工作正常的列(result.colNames
)和模型(result.colModel
)。
在相同的结果上,我正在拉表数据(result.colD
)以在成功时填充到JQgrid。
网格在成功时创造良好,但数据未加载到其中。
这是代码和截图。
我花了很多时间在这里,然后在这里发帖..希望这将在这里得到解决。
$.ajax({
type: "GET",
url: "webapi/do/pullSchema/"+display,
data: "",
dataType: "json",
success: function(result)
{
colD = JSON.stringify(result.colData);
colN = result.colNames;
colM = result.colModel;
jQuery("#list").jqGrid({
data:JSON.parse(colD),datatype: "local",
colNames:colN, colModel :colM,
pager: jQuery('#pager'),
rowNum: 5,
rowList: [5, 10, 20, 50],
viewrecords: true,
caption: 'DAta from table',
loadtext:'Loading, please wait'});
},
error: function(x, e)
{
alert(x.readyState + " "+ x.status +" "+ e.msg);
}
});
下面是样本数据集:
[dbname=null, tables=null, ColNames=[Plan_code, LOB],
colModel=[{name:'Plan_code',index:'Plan_code',width:255}, {name:'LOB',index:'LOB',width:255}], colData=[{LOB=N, Plan_code=C82ACC}, {LOB=P, Plan_code=C82ACC}, {LOB=B, Plan_code=C82ACC}, {LOB=I, Plan_code=C82ACC}, {LOB=I, Plan_code=C82IRA}, {LOB=R, Plan_code=C82IRA}]
答案 0 :(得分:0)
问题是colData不是jqgrid期望它的格式json(这是许多jqgrid开发人员常犯的错误)
有关详细信息,请参阅Here中的问题。
因此,在您的情况下,修复将是操纵colData并创建正确的json。
colRows=[{LOB=N, Plan_code=C82ACC}, {LOB=P, Plan_code=C82ACC}, {LOB=B, Plan_code=C82ACC}, {LOB=I, Plan_code=C82ACC}, {LOB=I, Plan_code=C82IRA}, {LOB=R, Plan_code=C82IRA}]
colData = {
"total": 1,
"page": 1,
"records": colRows.count,
rows:[{LOB=N, Plan_code=C82ACC}, {LOB=P, Plan_code=C82ACC}, {LOB=B, Plan_code=C82ACC}, {LOB=I, Plan_code=C82ACC}, {LOB=I, Plan_code=C82IRA}, {LOB=R, Plan_code=C82IRA}]
}
Send this to jqgrid and then it will know how to display it.
答案 1 :(得分:0)
问题已解决:
使用下面的函数来创建动态列标题和列模型。 function getColNames(data){ var keys = []; for(数据中的var键){ if(data.hasOwnProperty(key)){ keys.push(键); } }
return keys;
}
function getColModels(data) {
var colNames= getColNames(data);
var colModelsArray = [];
for (var i = 0; i < colNames.length; i++) {
var str;
if (i === 0) {
str = {
name: colNames[i],
index:colNames[i],
key:true,
editable:true
};
} else {
str = {
name: colNames[i],
index:colNames[i],
editable:true
};
}
colModelsArray.push(str);
}
return colModelsArray;
}