2012-03-17 31 views
0

Set rownumbers to false dynamically in jqgridの回答を使用して行番号トグルボタンを作成しました。 最初は行番号は表示されません。ボタンのクリックは無視され、行番号の列は追加されません。 ボタンに行番号列を追加するにはどうすればいいですか? また、行番号の列を切り替えるために列選択機能にオプションを追加することはできますか?これは良いでしょう、追加のボタンが必要ではありません。jqgridで行番号を切り替える方法

var rownumbers= isColState ? myColumnsState.rownumbers : false; 
$("#grid_toppager_left table.navtable tbody tr").append(
     '<td class="ui-pg-button ui-corner-all">' + 
      '<div class="ui-pg-div my-nav-checkbox">' + 
      '<input tabindex="-1" type="checkbox" id="RowNumbers" ' + (rownumbers ? 'checked ' : '')+'/>' + 
      '<label title="Toggle row numbers"' + 
      ' for="RowNumbers">Toggle row numbers</label></div></td>' 
    ); 
$("#RowNumbers").button({ 
     text: false, 
     icons: {primary: "ui-icon-grip-dotted-vertical"} 
    }).click(function() { 
     rownumbers = !rownumbers; 
     if (rownumbers) { 
      $grid.jqGrid('showCol', 'rn'); 
     } else { 
      $grid.jqGrid('hideCol', 'rn'); 
      } 
     saveWindowState(); 
    }); 

更新

jqgridも複数選択と_actions列が含まれています。行番号は負荷後の最初の時間にオンになっている場合loadcomplete新しい行に

var newRowData = { Dokumnr: 123, 
    Reanr: $grid[0].rows.length + 1 
}, 
newRowId = '_empty' + $.jgrid.randId(); 
$grid.jqGrid('addRowData', newRowId, newRowData); 

を使用してグリッドの最後に追加され、追加した行における複数選択列チェックボックスがrown番号欄に表示されます

checkbox in row number column

これを修正するには?

答えて

1

行番号を作成するには、rownumbers: trueを指定する必要があります。行番号が最初に表示されないようにするには、グリッドの作成後に$grid.jqGrid('hideCol', 'rn');を呼び出す必要があります。さらに、$grid.jqGrid('setGridParam', {rownumbers: false});に関してrownumbersをfalseに設定することもできますが、実際には必要ではないと思います。

その後、最初に好きなようにボタン$("#RowNumbers")を使用することができます。おそらく、rownumbersオプションをtrueまたはfalseと一緒にshowColhideColと一緒に設定し、rownumbers変数の代わりにrownumbersオプションを使用すると考えられます。 addRowDataの現在のコードは、ちょうどjqGridのrownumbersオプションがtrueであるかどうかをテストします:

var ni = t.p.rownumbers===true ? 1 :0; 
    gi = t.p.multiselect ===true ? 1 :0; 
    si = t.p.subGrid===true ? 1 :0; 

は、データの位置を計算値に依存:

prp = t.formatCol(ni,1,'', null, rowid, true); 

のでを更新し

私は私の答えを訂正するべきです。 rownumbersオプションの値を変更しないでください。対応する列が非表示になっていても、常にtrueのままです。

+0

ありがとうございます。優れた提案。私はそれらを実装しましたが、追加された行の複数選択チェックボックスは、行番号がファット時に切り替わると行番号の列に表示されます。これを修正するには?私は質問 – Andrus

+0

@Andrusを更新しました。問題を修正するためには、jqGridの 'rownumbers'オプションを変更しないほうがよいと思われます。常に真実にとどまるべきです。 – Oleg

+0

ありがとうございます。どのようにトグルとグリッド状態の保存の行番号の現在の状態を見つけるには?私はチェックする必要がありますrownumbers列が隠された状態ですか?はいの場合、これを確認する方法は? – Andrus

関連する問題