Le gridPanel est la représentation d'un tableau en ExtJs.
Notre gridPanel définit quatre paramètres :
var monGridPanel = new Ext.grid.GridPanel({
autoHeight:true,
renderTo:Ext.getBody(),
store: monStore,
columns:mesColonnes
});
Nous allons définir les colonnes de notre tableau sous la forme d'un tableau JSON :
Nos colonnes sont définis avec plusieurs propriétés:
var mesColonnes = [
{header: 'Identifiant', width: 200, dataIndex: 'numero_enregistrement',sortable: true},
{header: 'Nom', width: 200, dataIndex: 'nom_enregistrement',sortable: true},
{header: 'Date', width: 200, dataIndex: 'date_creation',xtype:'datecolumn',format:'d/m/Y',sortable: true}
];
Nous allons créer un JsonStore car les données qu'il va contenir seront sous la forme JSON.
Notre Store définit quatre paramètres :
var monStore = new Ext.data.JsonStore({
root: 'rows',
idProperty: 'numero_enregistrement',
fields:mesChampsDeDonnees,
data:mesDonnees
});
Il permet de connaître le type et le format de chaque donnée récupéré.
Nous utilisons un tableau JSON de plusieurs paramètres :
var mesChampsDeDonnees = [
{name: 'numero_enregistrement'},
{name: 'nom_enregistrement'},
{name: 'date_creation',type:'date',dateFormat:'Y-m-d'}
];
Nous utilisons un tableau de données JSON :
Il contient une propriété :
var mesDonnees = {
rows:[
{numero_enregistrement: 1,nom_enregistrement: 'Premier enregistrement',date_creation: '2011-03-13'},
{numero_enregistrement: 2,nom_enregistrement: 'Deuxieme enregistrement',date_creation: '2011-03-14'},
{numero_enregistrement: 3,nom_enregistrement: 'Troisième enregistrement',date_creation: '2011-03-15'}
]
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
<link href="http://127.0.0.1/ext3/ExtJs3/resources/css/ext-all.css" media="screen" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://127.0.0.1/ext3/ExtJs3/adapter/ext/ext-base-debug.js"></script>
<script type="text/javascript" src="http://127.0.0.1/ext3/ExtJs3/ext-all-debug-w-comments.js"></script>
<script type="text/javascript" src="http://127.0.0.1/ext3/ExtJs3/src/locale/ext-lang-fr.js"></script>
<script type="text/javascript" src="http://127.0.0.1/ext3/gridPanel.js"></script>
</head>
<body>
</body>
</html>
Ext.onReady(function(){
var mesChampsDeDonnees = [
{name: 'numero_enregistrement'},
{name: 'nom_enregistrement'},
{name: 'date_creation',type:'date',dateFormat:'Y-m-d'}
];
var mesDonnees = {
rows:[
{numero_enregistrement: 1,nom_enregistrement: 'Premier enregistrement',date_creation: '2011-03-13'},
{numero_enregistrement: 2,nom_enregistrement: 'Deuxieme enregistrement',date_creation: '2011-03-14'},
{numero_enregistrement: 3,nom_enregistrement: 'Troisième enregistrement',date_creation: '2011-03-15'}
]
}
var monStore = new Ext.data.JsonStore({
root: 'rows',
idProperty: 'numero_enregistrement',
fields:mesChampsDeDonnees,
data:mesDonnees
});
var mesColonnes = [
{header: 'Identifiant', width: 200, dataIndex: 'numero_enregistrement',sortable: true},
{header: 'Nom', width: 200, dataIndex: 'nom_enregistrement',sortable: true},
{header: 'Date', width: 200, dataIndex: 'date_creation',xtype:'datecolumn',format:'d/m/Y',sortable: true}
];
var monGridPanel = new Ext.grid.GridPanel({
autoHeight:true,
renderTo:Ext.getBody(),
store: monStore,
columns:mesColonnes
});
monGridPanel.show();
});