この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
第3回目の記事ではinput項目で入力された値でjqGridをリロードする(検索条件をjqGridに渡して検索する)までを試してみましたが、今回は上段jqGridでクリックされた値を取得して、下段jqGridに値を渡して連動させるまでを試してみます。
まずは前回までのcf10_cfgrid.cfmのサンプルソースに下段jqGrid用のjavascriptを追加します。(56行目あたりに下記javascriptコードを追加します。)
//下段のjqGridの生成
$(".jgrid_bottom").jqGrid({
url:'GetData_sample.cfc?method=getinfo_bottom',
datatype: 'json',
mtype: "GET",
formatter : {
number : {decimalSeparator:".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'}
},
colModel :[
{name:'ID',index:'ID'},
{name:'F_TIME',index:'F_TIME', align:"left", editable:false},
{name:'Q1',index:'Q1', align:"right", editable:true},
{name:'Q2',index:'Q2', align:"right", editable:true},
{name:'Q3',index:'Q3', align:"right", editable:true},
{name:'Q4',index:'Q4', align:"right", editable:true},
{name:'F_TOTAL',index:'F_TOTAL', align:"right", editable:false}
],
pager: $(".jgpager_bottom"),
rowNum:10,
rowList:[10,20,30],
sortorder: "desc",
viewrecords: true,
height: 180,
caption: 'jqGridサンプル Bottom',
jsonReader: {
root: "ROWS",
page: "PAGE",
total: "TOTAL",
records: "RECORDS",
id: "ID",
cell: "CELL"
}
});
簡単なコードの説明 2行目:下段のグリッドをjgrid_bottomとしています。 3行目:cfcomponentの呼び出しメソッドをgetinfo_bottomとして呼び出しています。
下段のjqGridを描画する<div>を追加します。
<div class="span12" style="padding-top:5px;">
<!--- jqGrid_bottom表示 --->
<div class="row-fluid" style="background-color:mintcream;">
<div id="d_grid2" style="padding-top:5px;">
<table id="list_bottom" class="jgrid_bottom"></table>
<div id="pager_bottom" class="jgpager_bottom">
</div>
</div>
</div>
</div>
次に上段のグリッドがクリックされた時に実行されるjavascriptコードを追加します。
//上段jgridがクリックされた場合の処理
$(".jgrid").click(function(){
// jqGrid選択行ID取得
var id = $(".jgrid").getGridParam("selrow");
if( id )
{
var row = $(".jgrid").getRowData(id);
var CN = encodeURI(row.CustomerName);
//下段jqGridをリロードする
$(".jgrid_bottom").setGridParam({url:"GetData_sample.cfc?method=getinfo_bottom&CN=" + CN}).trigger("reloadGrid");
}
});
下記が実行結果のスクリーンショット 上段グリッドでクリックした行のCustomerNameを下段のグリッドに渡してリロードした状態です。
今回は短いですが、この辺で。 次回は下段グリッドのセル編集を試してみたいと思います。