正在工作(index.json)。但我不能在jqgrid中显示。我认为colmodel名称是problem.Is,它要求colModel名称来自数据库字段?我想在jqgrid中显示来自我的select语句,而这些变量来自不同的表。不仅一张桌子,还有三张桌子。
Q2. table行应该显示在jqgrid中,但应该显示在不同的表中。有可能吗?
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#list").jqGrid({
url:'{{=URL(r=request,f='call',args=['json','index'])}}',
data: "{}",
datatype: 'json',
mtype: 'GET',
contentType: "application/json; charset=utf-8",
complete: function(jsondata, stat) {
if (stat == "success") {
var thegrid = jQuery("#list")[0];
thegrid.addJSONData(JSON.parse(jsondata.responseText).d);
}
},
colNames:['code','name','max','min','quantity','amount'],
colModel :[
{name:CODE',index:'CODE', width:55},
{name:'Name', index:'Name',width:100},
{name:'MAX(table2.hour)', index:'MAX(hour)',width:100},
{name:'MIN(tabl2.hour)', index:'MIN(hour)',width:100},
{name:'SUM(quantity)', index:'SUM(quantity)',width:180},
{name:'SUM(amount)', index:'SUM(amount)',width:180}
],
hidegrid: false,
scrollOffset:0,
pager: '#pager',
rowNum:100,
shrinkToFit:false,
//rowList:[10,20,30,50],
//sortname: 'id',
//sortorder: 'desc',
viewrecords: false,
width: "100%",
height: "100%",
caption: 'SALES Grid'
});
});
</script>{“行”:0,{"table1":{“名称”:"dyon"},"_extra":{“最大(表2.小时)”:"20130514214301484",“最小(表2.小时)”:"20130514052610093",“和(表2.antity)”:2115.854,“SUM(table2.sum)”:90089.15},"table3":{“代码”:}}
注意:我想在一个页面中显示数据,only.when,我运行index.html,它包含行,但它是空的,每个cell.When都有包含0的行,我运行index.json,它包含我需要的数据。我是蟒蛇的新手。谢谢!
发布于 2013-07-26 08:40:56
第一个问题是,您使用了许多不存在的jqGrid选项(参见文献资料):data、contentType、complete。您可以删除这些选项,或者使用一些其他选项来执行您可能尝试过的操作。
第二个问题是在JSON输入中使用属性,其中包含点(例如,SUM(table2.quantity) )。要能够读取这些属性,必须将jsonmap定义为函数。例如
jsonmap: function (obj) {
return obj._extra["SUM(table2.quantity)"];
}因为JSON数据的第一个元素是0,所以您必须修复上面的代码,如下所示
jsonmap: function (obj) {
return typeof obj === "object"? obj._extra["SUM(table2.quantity)"]: "";
}第一个演示演示了结果:

最好是修复服务器代码,从rows数组中删除不需要的rows项。如果无法在服务器端执行此操作,则可以在beforeProcessing回调内的客户端执行此操作。
演示显示器

它使用以下JavaScript代码
$("#list").jqGrid({
url: "CrazyGirl.json", // need be changed to youth
datatype: "json",
ajaxGridOptions: { contentType: "application/json" },
serializeGridData: function (data) {
return JSON.stringify({}); // send empty object (???)
},
colNames: ["code", "name", "max", "min", "quantity", "amount"],
colModel: [
{name: "code", width: 55, jsonmap: "table3.CODE"},
{name: "name", width: 100, jsonmap: "table1.Name"},
{name: "max", width: 120,
jsonmap: function (obj) {
return typeof obj === "object"? obj._extra["MAX(table2.hour)"]: "";
}},
{name: "min", width: 120,
jsonmap: function (obj) {
return typeof obj === "object"? obj._extra["MIN(table2.hour)"]: "";
}},
{name: "quantity", width: 100,
jsonmap: function (obj) {
return typeof obj === "object"? obj._extra["SUM(table2.quantity)"]: "";
}},
{name: "amount", width: 100,
jsonmap: function (obj) {
return typeof obj === "object"? obj._extra["SUM(table2.amount)"]: "";
}}
],
jsonReader: { repeatitems: false },
hidegrid: false,
pager: "#pager",
rowNum: 1000,
shrinkToFit: false,
height: "100%",
caption: "SALES Grid"
});https://stackoverflow.com/questions/17852050
复制相似问题