在url click事件中使用列值

时间:2016-10-13 00:59:04

标签: jqgrid

我创建了一个列出客户项目的网格,并在您单击该行时转到项目页面。我遇到的问题是网格传递的是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: ""
    });
});

1 个答案:

答案 0 :(得分:1)

从服务器返回的数据(来自getprojects.php)应该包含唯一的id属性,该属性标识行,jqGrid将使用该属性作为id属性的值。行(id的{​​{1}}行。如果<tr>包含唯一值,则可以使用ProjectID选项通知jqGrid将该属性用作rowid。还有一种方法:您可以将jsonReader: { id: "ProjectID" }属性添加到列key: true的定义中。

如果ProjectID列不包含唯一值,则可以将ProjectID回调的代码修改为以下内容:

onSelectRow