2012-03-14 82 views
0

我使用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的行索引。 有一點幫助?

感謝

回答

0

,我要開始與句話什麼限制在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的描述。