我创建了一个列出客户项目的网格,并在您单击该行时转到项目页面。我遇到的问题是网格传递的是rowid而不是url参数中使用的列值,所以它正在拉错项目。这是我的代码:
$(document).ready(function () {
$("#list").jqGrid({
url: "getprojects.php",
datatype: "json",
mtype: "GET",
colNames: ["Project ID", "Customer", "Invoice Number", "Vehicle", "Project Date"],
colModel: [
{name: "ProjectID", width:60},
{name: "CustomerName", width:200},
{name: "InvoiceNumber", width:120},
{name: "Vehicle", width:220},
{name: "ProjectDate", width:100}
],
onSelectRow: function (ProjectID) {
document.location.href = "manageproject.php?pid=" + ProjectID;
},
pager: "#pager",
width: 800,
rowNum: 20,
rowList: [],
sortname: "ProjectDate",
sortorder: "desc",
height: 'auto',
viewrecords: true,
gridview: true,
caption: ""
});
});
答案 0 :(得分:1)
从服务器返回的数据(来自getprojects.php
)应该包含唯一的id
属性,该属性标识行,jqGrid将使用该属性作为id
属性的值。行(id
的{{1}}行。如果<tr>
包含唯一值,则可以使用ProjectID
选项通知jqGrid将该属性用作rowid。还有一种方法:您可以将jsonReader: { id: "ProjectID" }
属性添加到列key: true
的定义中。
如果ProjectID
列不包含唯一值,则可以将ProjectID
回调的代码修改为以下内容:
onSelectRow