Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / examples / grid / buffer.js
diff --git a/examples/grid/buffer.js b/examples/grid/buffer.js
new file mode 100644 (file)
index 0000000..6f094f7
--- /dev/null
@@ -0,0 +1,89 @@
+/*!
+ * Ext JS Library 3.0.0
+ * Copyright(c) 2006-2009 Ext JS, LLC
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+Ext.onReady(function(){\r
+\r
+    var store = new Ext.data.Store({\r
+        remoteSort: true,\r
+        baseParams: {lightWeight:true,ext: 'js'},\r
+        sortInfo: {field:'lastpost', direction:'DESC'},\r
+        autoLoad: {params:{start:0, limit:500}},\r
+\r
+        proxy: new Ext.data.ScriptTagProxy({\r
+            url: 'http://extjs.com/forum/topics-browse-remote.php'\r
+        }),\r
+\r
+        reader: new Ext.data.JsonReader({\r
+            root: 'topics',\r
+            totalProperty: 'totalCount',\r
+            idProperty: 'threadid',\r
+            fields: [\r
+                'title', 'forumtitle', 'forumid', 'author',\r
+                {name: 'replycount', type: 'int'},\r
+                {name: 'lastpost', mapping: 'lastpost', type: 'date', dateFormat: 'timestamp'},\r
+                'lastposter', 'excerpt'\r
+            ]\r
+        })\r
+    });\r
+\r
+    var grid = new Ext.grid.GridPanel({\r
+        renderTo: 'topic-grid',\r
+        width:700,\r
+        height:500,\r
+        frame:true,\r
+        title:'ExtJS.com - Browse Forums',\r
+        trackMouseOver:false,\r
+               autoExpandColumn: 'topic',\r
+        store: store,\r
+\r
+        columns: [new Ext.grid.RowNumberer({width: 30}),{\r
+            id: 'topic',\r
+            header: "Topic",\r
+            dataIndex: 'title',\r
+            width: 420,\r
+            renderer: renderTopic,\r
+            sortable:true\r
+        },{\r
+            header: "Replies",\r
+            dataIndex: 'replycount',\r
+            width: 70,\r
+            align: 'right',\r
+            sortable:true\r
+        },{\r
+            id: 'last',\r
+            header: "Last Post",\r
+            dataIndex: 'lastpost',\r
+            width: 150,\r
+            renderer: renderLast,\r
+            sortable:true\r
+        }],\r
+\r
+           bbar: new Ext.PagingToolbar({\r
+                   store: store,\r
+                   pageSize:500,\r
+                   displayInfo:true\r
+           }),\r
+\r
+           view: new Ext.ux.grid.BufferView({\r
+                   // custom row height\r
+                   rowHeight: 34,\r
+                   // render rows as they come into viewable area.\r
+                   scrollDelay: false\r
+           })\r
+    });\r
+\r
+\r
+    // render functions\r
+    function renderTopic(value, p, record){\r
+        return String.format(\r
+                '<b><a href="http://extjs.com/forum/showthread.php?t={2}" target="_blank">{0}</a></b><a href="http://extjs.com/forum/forumdisplay.php?f={3}" target="_blank">{1} Forum</a>',\r
+                value, record.data.forumtitle, record.id, record.data.forumid);\r
+    }\r
+    function renderLast(value, p, r){\r
+        return String.format('{0}<br/>by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastposter']);\r
+    }\r
+\r
+});\r