igGrid では列の mapper 関数を使用して複合オブジェクトが持つプロパティのデータをセルに表示することができます。マッピングはデータソースレベルで行われるため、並べ替えおよびフィルターは mapper 関数から返された値に基づいて実行されます。

以下のようにデータソースの各行データに person オブジェクトがあり firstName、lastName プロパティを持っているとします。

var data = [
	{"id":1, "person":{ "firstName":"千春","lastName":"林"}, "region": "佐賀県"},
	{"id":2, "person":{ "firstName":"なみ","lastName":"河本"}, "region": "沖縄県"},
.....
];

person 列に対して mapper 関数を設定し、lastName と firstName を合わせて「氏名」列として表示するようにします。

$("#grid1").igGrid(
	{
		columns:[
			{ key:"id", headerText:"ID", dataType:"number", width:"130px"},
			{ key:"person", headerText:"氏名", dataType:"object", width:"200px",
				mapper: function(record){
					return record.person.lastName + " " + record.person.firstName;
				}   
			},
			{ key:"region", headerText:"地域", dataType:"string", width:"200px"}
		],
.....
	}
);

Tagged:

製品について

Ignite UI for jQuery