JQGridの一番上の行をプログラムで選択するにはどうすればよいですか。ページで開いたときに一番上の行をすでに選択しておく必要があります。私のグリッドは説明的な列でソートされているため、最初の行のIDは任意の数値にすることができます。使用する方法を知っています。一番上の(最初の)行のROWIDを取得する方法がわかりません。方法は次のとおりです。
jQuery("#mygrid").setSelection(rowid, true);
または、jqGrid APIを使用せずに、DOMをナビゲートして一番上の行を取得できるはずです。
var top_rowid = $('#mygrid tbody:first-child tr:first').attr('id');
上記の答えは近いものでしたが、ケースはオフでした。そのはず:
$("#mygrid").getDataIDs()[0];
それは正しく動作するはずです。
jqGridはsetSelection
メソッドをサポートしており、正しく呼び出す必要があります。
var grid = jQuery("#mygrid"),
ids = grid.jqGrid("getDataIDs");
if(ids && ids.length > 0)
grid.jqGrid("setSelection", ids[0]);
$("#mygrid").getDataIDs()[0]; // SO now requires 30 characters, so....
私は以下を使用しました:
var grid = $('#list');
grid.jqGrid({
...
gridComplete: function() {
var ids = grid.jqGrid("getDataIDs");
if(ids.length > 0) {
grid.jqGrid("setSelection", ids[0]);
}
},
...
});
テーブルにヘッダー行がある場合の完全なコード:
var top_rowid = $('#mygrid tr:nth-child(2)').attr('id');
$("#mygrid").setSelection(top_rowid, true);
ヘッダー行がある場合は、次のことを試してください。
var top_rowid = $('#mygrid tbody:first-child tr:nth-child(2)').attr('id');
ヘッダー行がある場合は、これを試してください:
$('#tb_par tbody:first-child tr:nth-child(2)').trigger("click");
そうでない場合:
$('#mygrid tbody:first-child tr:first').trigger("click");
JqGridのクリックイベントを直接トリガーします。