【发布时间】:2018-07-27 16:10:42
【问题描述】:
我在使用搜索结果页时遇到了问题。搜索页面有 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]);
});
【问题讨论】:
-
好的,所以我通过将数据类型从本地更改为 json 来让网格显示所有行。但是现在寻呼机无法正常工作。我将 rowNum 设置为 20,但它在第一页上显示所有记录,并且页码显示它在第 1 页,共 0 页。
-
这是因为您使用 addRowData - 此方法不考虑寻呼机,主要用于内部目的。我建议您不要使用 addRoeData,而是像这样更改您的代码:查看答案