X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/paging.html diff --git a/docs/source/paging.html b/docs/source/paging.html new file mode 100644 index 00000000..84b1cdd5 --- /dev/null +++ b/docs/source/paging.html @@ -0,0 +1,125 @@ + + + The source code + + + + +
Ext.onReady(function(){
+
+    // create the Data Store
+    var store = new Ext.data.JsonStore({
+        root: 'topics',
+        totalProperty: 'totalCount',
+        idProperty: 'threadid',
+        remoteSort: true,
+
+        fields: [
+            'title', 'forumtitle', 'forumid', 'author',
+            {name: 'replycount', type: 'int'},
+            {name: 'lastpost', mapping: 'lastpost', type: 'date', dateFormat: 'timestamp'},
+            'lastposter', 'excerpt'
+        ],
+
+        // load using script tags for cross domain, if the data in on the same domain as
+        // this page, an HttpProxy would be better
+        proxy: new Ext.data.ScriptTagProxy({
+            url: 'http://extjs.com/forum/topics-browse-remote.php'
+        })
+    });
+    store.setDefaultSort('lastpost', 'desc');
+
+
+    // pluggable renders
+    function renderTopic(value, p, record){
+        return String.format(
+                '{0}{1} Forum',
+                value, record.data.forumtitle, record.id, record.data.forumid);
+    }
+    function renderLast(value, p, r){
+        return String.format('{0}
by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastposter']); + } + + var grid = new Ext.grid.GridPanel({ + width:700, + height:500, + title:'ExtJS.com - Browse Forums', + store: store, + trackMouseOver:false, + disableSelection:true, + loadMask: true, + + // grid columns + columns:[{ + id: 'topic', // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 }) + header: "Topic", + dataIndex: 'title', + width: 420, + renderer: renderTopic, + sortable: true + },{ + header: "Author", + dataIndex: 'author', + width: 100, + hidden: true, + sortable: true + },{ + header: "Replies", + dataIndex: 'replycount', + width: 70, + align: 'right', + sortable: true + },{ + id: 'last', + header: "Last Post", + dataIndex: 'lastpost', + width: 150, + renderer: renderLast, + sortable: true + }], + + // customize view config + viewConfig: { + forceFit:true, + enableRowBody:true, + showPreview:true, + getRowClass : function(record, rowIndex, p, store){ + if(this.showPreview){ + p.body = '

'+record.data.excerpt+'

'; + return 'x-grid3-row-expanded'; + } + return 'x-grid3-row-collapsed'; + } + }, + + // paging bar on the bottom + bbar: new Ext.PagingToolbar({ + pageSize: 25, + store: store, + displayInfo: true, + displayMsg: 'Displaying topics {0} - {1} of {2}', + emptyMsg: "No topics to display", + items:[ + '-', { + pressed: true, + enableToggle:true, + text: 'Show Preview', + cls: 'x-btn-text-icon details', + toggleHandler: function(btn, pressed){ + var view = grid.getView(); + view.showPreview = pressed; + view.refresh(); + } + }] + }) + }); + + // render it + grid.render('topic-grid'); + + // trigger the data store load + store.load({params:{start:0, limit:25}}); +}); +
+ + \ No newline at end of file