前回はHello, Worldダイアログを表示させましたが、今回はExtJSの肝であるGridを使ってみます。
前回同様にHTMLファイルを作成します。
grid.htmlのソース
12行目は表示場所を指定するやり方です。
grid.jsのソース
今回はMemoryProxy(HTTPでデータを取得する場合にはHttpProxyを使用する)を使用します。
MemoryProxyはメモリーに展開されたデータを代理で処理するオブジェクトです。
13~24行目で読み込むデータの情報を定義します。
ArrayReaderは配列形式で読み込む為のオブジェクトです。
属性なども定義できますが、今回は名前だけ定義しています。
27~30行目で先に定義した proxy と reader を使い、ExtJSで利用出来る形の store にします。
35~76行目でGridの定義をしています。
定義内容は以下の通り。
reader定義のnameの部分をdataIndexに設定することで、そのカラムにデータが表示されます。
79行目でgrid.htmlの12行目の位置に表示させています。
htmlを開くと以下の様に表示されます。
前回同様にHTMLファイルを作成します。
grid.htmlのソース
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Grid</title>
<link rel="stylesheet" type="text/css" href="lib/ext/resources/css/ext-all.css" />
<script type="text/javascript" src="lib/ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="lib/ext/ext-all-debug.js"></script>
<script language="javascript" src="grid.js"></script>
</head>
<body>
<div id="grid"></div>
</body>
</html>
9行目では今回使用するgrid.jsを読み込みます。12行目は表示場所を指定するやり方です。
grid.jsのソース
Ext.onReady(function(){
// データ定義
var proxy = new Ext.data.MemoryProxy([
['7369', 'SMITH', 'CLERK', '7902', '1980/12/17', '800', '', '20'],
['7499', 'ALLEN', 'SALESMAN', '7698', '1981/02/20', '1600', '300', '30'],
['7521', 'WARD', 'SALESMAN', '7698', '1981/02/22', '1250', '500', '30'],
['7566', 'JONES', 'MANAGER', '7839', '1981/04/02', '2975', '', '20'],
['7654', 'MARTIN', 'SALESMAN', '7698', '1981/09/28', '1250', '1400', '30']
]);
// 読み込み設定
var reader = new Ext.data.ArrayReader({
fields: [
{ name:'empno' },
{ name:'ename' },
{ name:'job' },
{ name:'mgr' },
{ name:'hiredate' },
{ name:'sal' },
{ name:'comm' },
{ name:'deptno' }
]
});
// データストア
var store = new Ext.data.Store({
proxy: proxy,
reader: reader
});
store.load();
// グリッド定義
var gridPanel = new Ext.grid.GridPanel({
title: '社員表',
height: 200,
width: 550,
store: store,
colModel: new Ext.grid.ColumnModel([
{
header: '社員番号',
width: 60,
sortable: true,
dataIndex: 'empno'
},{
header: '社員名',
width: 60,
dataIndex: 'ename'
},{
header: '職種',
width: 80,
dataIndex: 'job'
},{
header: '社員番号(上司)',
width: 90,
dataIndex: 'mgr'
},{
header: '雇用日',
width: 70,
dataIndex: 'hiredate'
},{
header: '賃金',
width: 60,
dataIndex: 'sal'
},{
header: 'コミッション',
width: 60,
dataIndex: 'comm'
},{
header: '部署番号',
width: 60,
dataIndex: 'deptno'
}
])
});
// 描画
gridPanel.render('grid');
});
4~10行目でデータを定義します。今回はMemoryProxy(HTTPでデータを取得する場合にはHttpProxyを使用する)を使用します。
MemoryProxyはメモリーに展開されたデータを代理で処理するオブジェクトです。
13~24行目で読み込むデータの情報を定義します。
ArrayReaderは配列形式で読み込む為のオブジェクトです。
属性なども定義できますが、今回は名前だけ定義しています。
27~30行目で先に定義した proxy と reader を使い、ExtJSで利用出来る形の store にします。
35~76行目でGridの定義をしています。
定義内容は以下の通り。
| title | Gridのタイトル |
| height | Gridの高さ |
| width | Gridの幅 |
| store | 使用するstore |
| colModel | columnの定義 |
| header | カラム名 |
| width | カラムの幅 |
| sortable | ソート機能の有無 |
| dataIndex | 使用するstoreでの名前(reader定義のname) |
79行目でgrid.htmlの12行目の位置に表示させています。
htmlを開くと以下の様に表示されます。
コメント
コメントを投稿
・コメントはお気軽にどうぞ。
・記事に関係のないコメントはご遠慮ください。
・<b>, <i>, <a> などの一部の HTML タグを使用できます。