私はjqGridを持っていて、アイテムのいくつかのページがあります。1ページ目にあるか、他のページのどこかに埋め込まれている可能性のある行のIDがあります。
行のIDを指定して、そのような行をプログラムで選択するにはどうすればよいですか?ボタンのクリックイベントを次のように使用しています
.on("click", function(){
var myId = $(this).attr("id");
$("#studentGrid").jqGrid.setSelection(myId, true);
});
ボタンをクリックすると、次のファイアバグコンソールが表示されます。
TypeError:this.eachは関数ではありません
何か案は ?
編集
それで、私はグリッドに1つのレコードだけを再配置することを選択しました。問題は、ローカルデータを使用していないことです。私のデータ型は「json」です。このような
$("#studentGrid").jqGrid({
url: '<c:url value="/students/studentjsondata"/>',
datatype: 'json',
height: 'auto',
colNames:['id','First Name', 'Last Name', 'Other Name' ,'Date Of Birth', 'Gender'],
colModel:[
//Bla Bla Bla
],
rowNum:10,
autowidth: true,
pager: '#pager',
sortname: 'id',
viewrecords: true,
sortorder: "desc",
caption:"Students",
emptyrecords: "Empty Records",
subGrid: true,
/* <![CDATA[ */
onSelectRow: function(id){
if((lastsel != 0)&&(id!==lastsel)){
$("#studentGrid").jqGrid('collapseSubGridRow', lastsel);
}
lastsel=id;
}/* ]]> */ ,
subGridOptions: {
"plusicon" : "ui-icon-triangle-1-e",
"minusicon" : "ui-icon-triangle-1-s",
"openicon" : "ui-icon-arrowreturn-1-e",
"reloadOnExpand" : true,
"selectOnExpand" : true
},
subGridRowExpanded: function(subgrid_id, row_id) {
//Bla Bla Bla
}
});
グリッドに再入力したいjson文字列があります。この新しいデータでグリッドを再初期化するにはどうすればよいですか。次のjson文字列と、対応するロジックは次のとおりですが、何も起こりません。
{'page':'1', 'records':'1', 'total':'1', 'rows':[{'id':'7385', 'cell': ['Max', 'Payne', '', 'September 16, 2012', 'Male']}]}
.on("click", function(){
var myNewData = eval('(' + $(this).attr("griddata") + ')');
$("#studentGrid").jqGrid('setGridParam', { datatype: 'local', data: myNewData}).trigger('reloadGrid');
});