2017-08-02 27 views
1

我想通过jqGrid中的单元格内容(不是通过选定的行)获取行ID。如何获得按行的行ID在jqGrid中的数据(不是通过所选的行)

Example pic

通过PRODUCTID,我可以得到该行的ID。

例如对于PRODUCTIDABCD,我可以得到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"//, 

}); 

>版本: - 5.1.1的jqGrid

回答

0

是在ProductID是独一无二的,该网格包含ProductID作为列名称colModel,则建议将key: true添加到列定义中。它强制jqGrid使用ProductID的值作为rowid。

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

+0

谢谢奥列格。但我不知道你的意思。你能给我一些建议吗?谢谢。 – Leo

+0

@Leo:不客气!您应该将问题的文本附加到用于创建jqGrid的** JavaScript代码**和JSON数据的示例中。 JavaScript代码应该包含'colModel'参数。来自'colModel'元素的一个对应于'ProductID'列。你应该在列中加上'key:true'。 – Oleg

+0

感谢您的回复。我添加代码示例并修改一些说明。我主要需要通过单元格的内容获取rowid(colName是PRODUCTID)。 – Leo

0

这也就不难理解你想要得到的东西 - 我想你指的rowIndex,所以这里有一些可以帮助的方法。

方法

getGridRowById(串ROWID)

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

getInd(串ROWID,[布尔rowcontent])

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

如果将行作为文档对象,则可以获取索引和标识。假设rowData是一个文档排,然后

rowdata.rowIndex是该指数

rowdata.id是id

+0

谢谢托尼。我有RowData但我不知道RowID。因为我想更改单元格颜色,所以我必须通过RowData获取RowID。你能给我一些建议吗?谢谢。 – Leo

+0

什么是rowData - javaScript对象(数组)或文档对象。如果它是文档对象,那么id是RowData.id,如果这是JavaScript对象,你应该知道哪个字段是id,那么id将是RowData.ProductID或RowData ['ProductID'] –

+0

对不起...我的解释是不清楚。我的意思是RowData是单元格的内容。请参阅“示例图片”。我的意思是RowData是“ABCD”。现在,我知道“ABCD”,但我想知道它的行ID(在这种情况下,行ID是2)。如果单元格的内容为“TEST123”,则行ID为1. – Leo

相关问题