Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / binding.html
diff --git a/docs/source/binding.html b/docs/source/binding.html
new file mode 100644 (file)
index 0000000..388cdb5
--- /dev/null
@@ -0,0 +1,87 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js">Ext.onReady(function(){
+       
+    // create the Data Store
+    var store = new Ext.data.Store({
+        // load using HTTP
+        url: 'sheldon.xml',
+
+        // the return will be XML, so lets set up a reader
+        reader: new Ext.data.XmlReader({
+               // records will have an "Item" tag
+               record: 'Item',
+               id: 'ASIN',
+               totalRecords: '@total'
+           }, [
+               // set up the fields mapping into the xml doc
+               // The first needs mapping, the others are very basic
+               {name: 'Author', mapping: 'ItemAttributes > Author'},
+               'Title',
+                          'Manufacturer',
+                          'ProductGroup',
+                          // Detail URL is not part of the column model of the grid
+                          'DetailPageURL'
+           ])
+    });
+
+    // create the grid
+    var grid = new Ext.grid.GridPanel({
+        store: store,
+        columns: [
+            {header: "Author", width: 120, dataIndex: 'Author', sortable: true},
+            {header: "Title", width: 180, dataIndex: 'Title', sortable: true},
+            {header: "Manufacturer", width: 115, dataIndex: 'Manufacturer', sortable: true},
+            {header: "Product Group", width: 100, dataIndex: 'ProductGroup', sortable: true}
+        ],
+               sm: new Ext.grid.RowSelectionModel({singleSelect: true}),
+               viewConfig: {
+                       forceFit: true
+               },
+        height:210,
+               split: true,
+               region: 'north'
+    });
+       
+       // define a template to use for the detail view
+       var bookTplMarkup = [
+               'Title: <a href="{DetailPageURL}" target="_blank">{Title}</a><br/>',
+               'Author: {Author}<br/>',
+               'Manufacturer: {Manufacturer}<br/>',
+               'Product Group: {ProductGroup}<br/>'
+       ];
+       var bookTpl = new Ext.Template(bookTplMarkup);
+
+       var ct = new Ext.Panel({
+               renderTo: 'binding-example',
+               frame: true,
+               title: 'Book List',
+               width: 540,
+               height: 400,
+               layout: 'border',
+               items: [
+                       grid,
+                       {
+                               id: 'detailPanel',
+                               region: 'center',
+                               bodyStyle: {
+                                       background: '#ffffff',
+                                       padding: '7px'
+                               },
+                               html: 'Please select a book to see additional details.'
+                       }
+               ]
+       })
+       grid.getSelectionModel().on('rowselect', function(sm, rowIdx, r) {
+               var detailPanel = Ext.getCmp('detailPanel');
+               bookTpl.overwrite(detailPanel.body, r.data);
+       });
+    store.load();
+});</pre>    \r
+</body>\r
+</html>
\ No newline at end of file