2012-03-14 11 views
0

私はjqGridを使用していますが、特定の場所に新しい行を挿入する時間があります。私はrowIdを持っていますが、どこの位置(行のインデックス)を決定するかを呼び出すときに、nullを返します。JQGrid:rowIdで位置を取得できません

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

しかし、私はの行のインデックスを取得しようとすると:私は戻って、次を得る

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

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" 
    }); 

しかし、私は呼ん:私はテーブルで働いていますそれらのいずれか、結果はnullに戻ります。

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

そして私は、(アラートに)チェックして、私が戻ったものを参照してください、私はこれを参照してください:これは私がやろうとしているものです

Position is: false for Level 03.xpusdscvs 

何がありますか? getIndは、2番目のパラメータとしてfalseを渡すと、rowIdの行インデックスを返すものとします。 少し助けますか?私は制限がHTMLでidを持っているどのような発言を開始する必要があり

おかげ

答えて

0

。ストリングは使用できません。まず、ユニークページにある必要があります。次に、CSSとHTMLの要件を識別子に従わなければなりません。要件は、CSSのバージョンやHTMLのバージョンによって若干異なります。あなたは次のことを読み取ることができるCSS 2.1の仕様では例えば、(hereを参照してください):CSSで

、(要素名、クラス、および セレクタ内のIDを含む)の識別子を含めることができる文字のみ[-ZA -Z0-9]およびISO 10646 文字U + 00A0以上、ハイフン( - )およびアンダースコア (_)。数字、2つのハイフン、またはハイフンで始めることはできず、数字で が続きます。識別子には、エスケープ文字と数値コードとして ISO 10646文字を含めることもできます(次の項目を参照)。たとえば、 という識別子 "B & W?" 「B \ & W?」と書かれています。または「B¥26 W¥3F」と入力します。

HTML5の仕様では、

id属性は、その要素の一意の識別子(ID)を指定します(hereを参照)を読むことができます。

値は、要素のホーム サブツリー内のすべてのIDの間で一意でなければならず、少なくとも1文字を含む必要があります。値には、空白文字が含まれていてはなりません。

あなたはjQueryの内部.または他のメタ文字などの特殊文字を使用する場合はさらにselectorsyouはバックスラッシュで文字をエスケープする必要があります。\\。詳細は、hereを参照してください。

jqGridが可能メタ文字をエスケープするために内部メソッド$.jgrid.jqIDを使用しています。

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

あなたは簡単に彼のライブにしたい場合は、私は文字のみ[A-Za-z]、数字[0-9]または_または内部-を使用するためにあなたをお勧めしますidsの。さらに、私は大文字と小文字を区別するidsを使用しないことをお勧めします。 HTMLはほとんどの場合大文字小文字を区別しないので、[a-z]または[A-Z]のいずれかを使用する方が良いです。さらに、idの最初の文字として文字を使用する必要があります(ただし必須ではありません)。シンプルなルールは将来のあなたの時間を節約することができます。

あなたのケースでは接頭辞なしxpusdscdwscoach3xpusdscvsxpusdscahxpusdsctotemxpusdscscなどのIDS"Level 3"は完璧です。

今すぐあなたの主な質問に戻ってください。コードで

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

私はrowidであるという事実を使用する:あなたはHTMLのテーブルの中にある変数rowid内の行のidを持っている場合は、行があれば、あなたは、行のインデックスを取得するには、次のコードを使用することができますid <tr>の要素は<table>です。 rowIndexhereの説明を参照してください。

関連する問題