如何在jqgrid中按行数据获取行ID(不是由选定的行)

时间:2017-08-02 06:10:02

标签: jqgrid

我想通过jqGrid中的单元格内容获取行ID(不是选定的行)。

Example pic

PRODUCTID,我可以获得行ID。

e.g。对于PRODUCTID ABCD,我可以获得2。

PRODUCTID是唯一的。

请给我一些建议。

非常感谢。

我的代码示例:

$("#project_jqGrid").jqGrid({
    url: 'project/projectQuery.php',
    mtype: "POST",
    datatype: "json",
    page: 1,
    colModel: [
        {   label : "PRODUCTLINE",
            //sorttype: 'integer',
            name: 'PRODUCTLINE', 
            //key: true, 
            width: 100,
            editable:true,
            editoptions:{readonly:'readonly'}
        },
        {   label : "GPOWNER",
            //sorttype: 'integer',
            name: 'GPOWNER', 
            //key: true, 
            width: 150,
            editable:true,
            editoptions:{readonly:'readonly'}
        },
        {   label : "PRODUCTID",
            //sorttype: 'integer',
            name: 'PRODUCTID', 
            key: true, 
            width: 100,
            editable:true,
            editoptions:{readonly:'readonly'}
        },
    ],
    loadComplete: function() {

        $.ajax({
           dataType: 'json',
           url : "project/projectDifferQuery.php", // your php file
           type : "GET", // type of the HTTP request
           success : function(data){

              // I can get PRODUCTID from mysql database
              // I want to get rowid to change cells color by PRODUCTID
              // ........

              // Change Cells Color(I need to get '5' by position of PRODUCTID)
              //$('#project_jqGrid').jqGrid('setCell',5,"GPOWNER","",{'background-color':'#FF4545'});

           }
        });

    },
    loadonce: true,
    viewrecords: true,
    width: 'auto',
    height: 'auto',
    rowNum: 20,
    pager: "#project_jqGridPager"//,

});

>版本: - jqGrid 5.1.1

2 个答案:

答案 0 :(得分:0)

理解你想要的东西有点困难 - 我认为你的意思是rowIndex,所以这里有一些方法可以提供帮助。

方法

getGridRowById(string rowid)

返回id = rowid的行作为文档对象

getInd(string rowid,[boolean rowcontent])

返回grid id row - rowid指定的网格表中行的索引。如果rowcontent设置为true,则返回行文档对象

如果您将行作为文档对象,则可以获取索引和ID。假设rowdata是文档行,那么

rowdata.rowIndex 是索引

rowdata.id 是ID

答案 1 :(得分:0)

ProductID是唯一的,并且网格包含ProductID作为colModel中的列名,那么建议将key: true添加到列定义。它强制jqGrid使用ProductID中的值作为rowid。

了解jqGrid的代码需要为jqGrid的每一行(id元素)设置唯一的<tr>属性,这一点非常重要。见here。因此,jqGrid 的输入数据必须包含rowid信息。 jqGrid的输入数据有许多替代格式。在最常见的方式中,输入数据应包含id属性。如果您的输入数据使用ProductID作为行的唯一ID,则可以添加选项jsonReader: { id: "ProductID" }以通知jqGrid。在的情况下,您不需要将ProductID作为colModel 中的列。