2012-02-07 127 views
7

クリック時に行が編集可能なjqGridがあります(つまり、 'OnSelectRow'内の 'editRow'は正常に動作します)。しかし、私の必要条件は、デフォルトではすべての行(行編集)でグリッドをロードすることです。そのため、個々の行をクリックする必要はありません。誰かライトを投げることはできますか?jqGrid:デフォルトで「インライン編集モード」のすべての行

私は、あなたは、グリッドのすべての行を列挙し、行ごとにeditRowを呼び出す必要があり、以下のコードが、didntの仕事

var data_val = myGrid.getRowData(); 
for (var i=0;i<data_val.length;i++) 
{ 
myGrid.editRow(data_val[i], true); 
} 

答えて

14

を試してみました。コードは以下の

loadComplete: function() { 
    var $this = $(this), ids = $this.jqGrid('getDataIDs'), i, l = ids.length; 
    for (i = 0; i < l; i++) { 
     $this.jqGrid('editRow', ids[i], true); 
    } 
} 

または以下

loadComplete: function() { 
    var $this = $(this), rows = this.rows, l = rows.length, i, row; 
    for (i = 0; i < l; i++) { 
     row = rows[i]; 
     if ($.inArray('jqgrow', row.className.split(' ')) >= 0) { 
      $this.jqGrid('editRow', row.id, true); 
     } 
    } 
} 
+0

うわーようにすることができます!オレグ!あなたはああのようです!我が神よ!!!あなたは私の一日を作った。ありがとうございます。 – CodeMad

+1

@CodeMad:ようこそ!私はあなたを助けることができてうれしいです。 – Oleg

+1

@Oleg jQueryの 'hasClass'関数を使うことをお勧めします:冗長で信頼できない' inArray'関数の代わりに '$(row).hasClass( 'jqgrow');' '$ .inArray( 'jqgrow'、row.className .split( ''))> = 0'。空白( '' ')のサイズを決して知ることはできません。 –

関連する問題