JQGrid:无法获得rowId的位置

问题描述:

我使用jqGrid,而且我有一段时间在特定位置插入新行。我有rowId,但是当我打电话来确定位置(行的索引)时,我得到一个空回。我与表工作:JQGrid:无法获得rowId的位置

var grid = jQuery("#myTable"); 
grid.jqGrid({ 
    datatype: "local", 
    colNames:['id','Type', 'Name', 'Total','In','Out'], 
    colModel:[ 
      { name: 'id', index: 'id', hidden: true, align:"center"},  
      {name:'type',index:'type', width:10, sortable:true, align:"center"}, 
      {name:'name',index:'name', width:40, sortable:true, align:"center"}, 
      {name:'total',index:'total', width: 10, sortable:false, align:"center"}, 
      {name:'in',index:'in', width:10, sortable:true, align:"center"}, 
      {name:'out',index:'out', width:10, sortable:true, align:"center"} 
    ], 
    width: "600", 
    height: "900" 
    }); 

但是,当我打电话:

var dataIds = jQuery("#myTable").getDataIDs(); 

我回来了以下内容:

Level 3.xpusdscdw,Level 3.scoach3,Level 3.xpusdscvs,Level 3.xpusdscah,Level 3.xpusdsctotem,Level 3.xpusdscsc 

但是,当我试图让的行索引任何这些,结果返回null。这就是我想要做的事:

var position = jQuery("#myTable").getInd(rowId,false); 
alert("Position is: "+position+" for "+rowId); 

然后我检查,看看有什么我回来了(与警报),我看到:

Position is: false for Level 03.xpusdscvs 

什么给?当你传入false作为第二个参数时,getInd应该返回rowId的行索引。 有一点帮助?

感谢

,我要开始与句话什么限制在HTML id。它不能是任何字符串。首先它必须是页面上唯一。接下来它应该遵循CSS和HTML对标识符的要求。这些要求在不同版本的CSS和不同版本的HTML中稍有不同。例如,在CSS 2.1你可以阅读以下的说明书(见here):

在CSS中,标识符(包括元素名,类和在 选择器的ID)可以只包含字符[A-ZA字符U + 00A0和更高,加上连字符( - )和下划线 (_);字符U + 00A0和更高,加上连字符( - )和下划线 (_);他们不能以数字,两个连字符或一个数字后跟 开头。标识符还可以包含转义字符和任何ISO 10646字符作为数字代码(参见下一项)。例如, 标识符“B & W?”可写成“B \ & W \?”或“B \ 26 W \ 3F”。

在HTML5规范可以读取(参见here

id属性指定其元素的唯一标识符(ID)。

该值必须在元素的主 子树中的所有ID中唯一,并且必须至少包含一个字符。该值不能包含任何空格字符 。

此外,如果您使用特殊字符,如.或其他元字符内的jQuery selectorsyou必须与反斜杠逃脱字符:\\。有关更多详细信息,请参阅here

jqGrid的内部使用的方法$.jgrid.jqID逃脱的可能元字符:如果你想

var myElement = $('#' + $.jgrid.jqID(someId)); 

他过得轻松些,我会建议你只使用字符[A-Za-z],数字[0-9]_-内的ids。此外,我会建议你不要使用只区分大小写的id。 HTML在大多数情况下不区分大小写,所以最好使用[a-z][A-Z]。此外,你应该(但不是必须)使用该字母作为id的第一个字符。简单的规则可以节省您的时间。

在你的情况一样xpusdscdwscoach3xpusdscvsxpusdscahxpusdsctotemxpusdscsc的ID没有前缀"Level 3"是完美的。

现在回到你的主要问题。如果你有一排id在一个变量rowid这是你可以使用下面的代码获取行索引,如果该行的HTML表格内:

var rowid = "xpusdscdw"; 
var myRow = $("#" + rowid); 
alert("row index: " + myRow[0].rowIndex); 

在代码中,我使用的事实,rowid是编号为<tr>的元素<table>。参见rowIndexhere的描述。