HARD DAY'S NIGHT別館

当サイトへお越しいただきありがとうございます。 実務に生かせるような技術・ライブラリを使った簡単なサンプルを公開してゆきます。

jqGrid 行グループ化(grouping)の簡単サンプル

グループ化(grouping)機能は指定した列のデータ内容が同じ行をひとまとまりとして表示します。
jqGrid DemosSimple Grouping with array data より流用させていただきました。
このサンプルでは列名 "name" (表示名:名前)のデータ内容でグループ化します。

コード


jQuery(document).ready(function() {
	var mydata = [ 
		{id:"1",invdate:"2010-05-24",name:"テスト",note:"note",tax:"10.00",total:"2111.00"} ,
		{id:"2",invdate:"2010-05-25",name:"テスト2",note:"note2",tax:"20.00",total:"320.00"},
		{id:"3",invdate:"2007-09-01",name:"テスト3",note:"note3",tax:"30.00",total:"430.00"},
		{id:"4",invdate:"2007-10-04",name:"テスト",note:"note",tax:"10.00",total:"210.00"},
		{id:"5",invdate:"2007-10-05",name:"テスト2",note:"note2",tax:"20.00",total:"320.00"},
		{id:"6",invdate:"2007-09-06",name:"テスト3",note:"note3",tax:"30.00",total:"430.00"}, 
		{id:"7",invdate:"2007-10-04",name:"テスト",note:"note",tax:"10.00",total:"210.00"}, 
		{id:"8",invdate:"2007-10-03",name:"テスト2",note:"note2",amount:"300.00",tax:"21.00",total:"320.00"},
		{id:"9",invdate:"2007-09-01",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
		{id:"11",invdate:"2007-10-01",name:"テスト",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
		{id:"12",invdate:"2007-10-02",name:"テスト2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
		{id:"13",invdate:"2007-09-01",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
		{id:"14",invdate:"2007-10-04",name:"テスト",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
		{id:"15",invdate:"2007-10-05",name:"テスト2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
		{id:"16",invdate:"2007-09-06",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
		{id:"17",invdate:"2007-10-04",name:"テスト",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
		{id:"18",invdate:"2007-10-03",name:"テスト2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
		{id:"19",invdate:"2007-09-01",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
		{id:"21",invdate:"2007-10-01",name:"テスト",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
		{id:"22",invdate:"2007-10-02",name:"テスト2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
		{id:"23",invdate:"2007-09-01",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
		{id:"24",invdate:"2007-10-04",name:"テスト",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
		{id:"25",invdate:"2007-10-05",name:"テスト2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
		{id:"26",invdate:"2007-09-06",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, 
		{id:"27",invdate:"2007-10-04",name:"テスト",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, 
		{id:"28",invdate:"2007-10-03",name:"テスト2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, 
		{id:"29",invdate:"2007-09-01",name:"テスト3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"} 
	];

	jQuery("#list").jqGrid({
		data: mydata,
		datatype: "local",
		height: 'auto',
		rowNum: 30,
		rowList: [10,20,30],
		colNames:['番号','日付', '名前', '金額','税','合計','備考'],
		colModel:[	{name:'id',index:'id', width:60, sorttype:"int"},
					{name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"},
					{name:'name',index:'name', width:100, editable:true},
					{name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number", editable:true},
					{name:'tax',index:'tax', width:80, align:"right",sorttype:"float", editable:true},
					{name:'total',index:'total', width:80,align:"right",sorttype:"float"},
					{name:'note',index:'note', width:150, sortable:false}
				],
		loadComplete : function () {
			$("#list").jqGrid('setGridWidth', $("#main").width(), true);	// 横幅調整
		},
		pager: "#pager",
		viewrecords: true,
		sortname: 'name',
		grouping:true,
		groupingView : { groupField : ['name'] },
		caption: "配列データのグループ化" 
	});
});
	

HTMLコード


<table id="list">
</table>
<div id="pager">
</div>