使用本地数据的jqgrid仅显示一行

时间:2018-07-27 16:10:43

标签: php jquery jqgrid

我在搜索结果页面上遇到了麻烦。搜索页面有16个输入,结果页面使用动态查询来获取结果并将它们输入到一个数组中,该数组用于json_encode来用结果填充jqgrid。但是,网格仅显示第一条记录。我添加了一个php“ echo json_encode()...”脚本显示到页面上,以查看json格式的结果,并显示搜索结果中的所有记录,因此,我不知道为什么网格仅显示第一行。非常感谢您的帮助我可以理解这一点。这是网格的脚本(我不包括动态查询或数组脚本,因为它们可以正常工作):

$(document).ready(function () {
$("#slist").jqGrid({
data: "srchres",
datatype: "local",
mtype: "GET",
colNames: ['ProjectID', 'Customer Name', 'Invoice Number', 'Vehicle Info.', 'Project Date'],
colModel: [
{name:'ProjectID', index:'ProjectID', align:'right', hidden:true, editable:false},
{name:'CustomerName', index:'CustomerName', editable:false, width:175, align:'center'},
{name:'InvoiceNumber', index:'InvoiceNumber', editable:false, width:175, align:'center'},
{name:'VehicleInfo', index:'VehicleInfo', width:350, align:'left', editable:false},
{name:'ProjectDate', index:'ProjectDate', editable:false, width:125, align:'center', formatter: 'date', formatoptions: { newformat: 'm/d/Y' }},
],
jsonReader: {repeatitems: false, id: "ProjectID"},
onSelectRow: function (rowid) {
var rowData = $(this).getRowData(rowid);
document.location.href = "../manageproject.php?pid=" + rowData['ProjectID'];
},
pager: "#spager",
loadonce: true,
rowNum: 20,
rowList: [],
width: "auto",
height: "auto",
caption: "",
sortname: "",
sortorder: "",
viewrecords: true,
gridview: true
});
var srchres = <?php echo json_encode($projects_array); ?>;
for(var i=0;i<srchres.length;i++)
jQuery("#slist").addRowData(srchres[i].id,srchres[i]);
});

1 个答案:

答案 0 :(得分:0)

尝试在网格中进行以下设置:

$(document).ready(function () {
    var srchres = <?php echo json_encode($projects_array); ?>;
    $("#slist").jqGrid({
        data: srchres,
        datatype: "local",
        ....
    });
...

});

请注意变量 srchres 以及如何在网格选项中进行定义。不需要使用addRowData。