SimpleStoreを使ってGridへ表示する
「Gridを作成する」で配列のデータをグリッド表示しました。
ここでは、配列のデータをもう少し簡単に扱えるSimpleStoreを使ってGridに表示してみます。
配列で用意したデータをGrid表示する
基本となるHTMLを作成します。bodyへdivタグを追加し、idにsample_gridを設定します。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css">
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all-debug.js"></script>
<script type="text/javascript" src="main.js"></script>
<title>New Web Project</title>
</head>
<body>
<h1>New Web Project Page</h1>
<div id="sample_grid"></div>
</body>
</html>
JavaScript用のファイル(main.js)を作成しグリッドの表示を行うよう記述していきます。
Ext.BLANK_IMAGE_URL = 'ext/resources/images/default/s.gif';
Ext.onReady(function() {
// 時系列の緯度経度データ
var gpxTrack = [
['2008-10-04 09:54:06',35.371586,136.643680],
['2008-10-04 09:54:09',35.371583,136.643082],
['2008-10-04 00:54:12',35.371700,136.642497]
];
// Storeの作成 Ext.data.Record.createやArrayReaderの部分が省略される
var store = new Ext.data.SimpleStore({
fields: [
{name: 'time', type: 'date', dateFormat: 'Y-m-d H:i:s'},
{name: 'lat', type: 'float'},
{name: 'lon', type: 'float'}
],
data: gpxTrack
});
// 項目の作成
var colModel = new Ext.grid.ColumnModel([
{id:'time',header: "time", width: 140, sortable: true
, renderer: Ext.util.Format.dateRenderer('Y/m/d H:i:s')
, dataIndex: 'time'},
{header: "lat", align: 'right', width: 80, sortable: true, dataIndex: 'lat'},
{header: "lon", align: 'right', width: 80, sortable: true, dataIndex: 'lon'}
]);
var grid = new Ext.grid.GridPanel({
store: store,
cm: colModel,
stripeRows: true,
height: 200,
width: 320,
title: 'GPX Data',
frame: true
});
// グリッドを描画します
grid.render('sample_grid');
});
SimpleStoreのコンフィグにフィールドの定義を設定し、表示するデータを設定することでStoreが作成されます。
ここでの例は、Ext.grid.ColumnModelを使ってグリッドの項目情報を作成し Ext.grid.GridPanelのコンフィグ(cm)に設定しています。
コンフィグにもエイリアスが定義されているものがあり、cmはcolModelのエイリアスになります。
また、見た目のイメージが丸くなるようframeをtrueに設定しています。