// 定制用户界面
94
viewConfig:
{
95
forceFit: true,
96
enableRowBody: true,
97
showPreview: true,
98
getRowClass: function(record, rowIndex, p, store)
{
99
if (this.showPreview)
{
100
p.body = '<p>' + record.data.excerpt + '</p>';
101
return 'x-grid3-row-expanded';
102
}
103
return 'x-grid3-row-collapsed';
104
}
105
},
106
107
//在顶部的分页工具栏
108
//tbar: pagingToolbar,
109
110
// 在底部的分页工具栏
111
bbar: pagingToolbar
112
});
113
114
// 加载数据
115
store.load(
{ params:
{ start: 0, limit: 25} });
116
117
// 主题列的renderer函数
118
function renderTopic(value, p, record)
{
119
return String.format(
120
'<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>',
121
value, record.data.forumtitle, record.id, record.data.forumid);
122
}
123
//最后回复列的renderer函数
124
function renderLast(value, p, r)
{
125
return String.format('{0}<br/>by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastposter']);
126
}
127
}) 运行下看看效果,我们可以看到在获取数据的时候,页面被动画遮盖住,如图:

当数据加载完成,我们看到数据在grid中分页显示,并且按照最后发表列降序排列,其中作者列被隐藏:

当点击列名进行排序时,会从服务器上重新加载新的数据,点击向右的箭头,可以翻页,还可以点点“预览”按钮看看效果。虽然这次的代码相对最简单的grid多了不少,但效果也cool了不少。我们从头开始把代码理一下吧:
第8行使用了图片占位符,它指向的图片是一张空图片。在extjs的库文件中,根据需要会把这个图片占位符替换成另一张图片,在我们的例子中,如果去掉这一行,影响不会太大,只是标题栏中“最后回复”旁边向下的小箭头会不见了。我们还是养成把这一行写上的习惯吧。
11-28行构造了一个Store类的对象,这个没什么好说的了。
第30行设置lastpost列为默认排序的列,并且是按降序排列,注意“DESC"必须是大写,升序是“ASC”。
33-51行构造带分页的工具栏,前边都已经说过了。
54-112行构造带有分页功能的grid。
其中第60行指示鼠标在行上悬浮时行不会高亮显示。
61行指示用户不能对grid进行选择。
62行指示在加载数据的时候遮盖住页面,我们可以在截图上看到效果,不过还是推荐自己运行看下效果,毕竟这里显示的是动画。当数据加载完毕之后遮盖效果消失。
94-105行设置用户界面,我们看看每个参数的意义:
forceFit:是否强制列调整宽度使得不出现水平滚动条,默认是false。
enableRowBody:为true的时候允许每行增加一个tr元素用来扩展数据行。
showPreview:自定义的bool类型的属性,用来在代码中控制是否显示预览。
getRowClass:这是一个方法,用来改写行的css样式,它有四个参数,第一个是代表该行数据的Record对象,第二个是行的索引,第三个就是enableRowBody设置true时传递进来的
参数,可以通过该参数的body属性扩展行数据。该方法应当返回一个css类名。我们的例子中,根据showPreview的值来动态显示文章的摘要信息。
111行将分页工具栏显示在grid底部,如果想显示在顶部可以用tbar来代替bbar。
115行向服务器发出请求获取数据,extjs会以post方式将params中的参数发送给服务器,其中start指明从地几条数据开始,limit则表示每页显示多少数据。
118到126是两个renderer函数,在上一个系列中已经解释过用法了。
最后要指出的是,分页的功能其实还是在服务器端完成的。当在客户端进行翻页的时候,会和115行一样提交参数,我们需要在服务器端根据传递过来的star和limit的值来计算出应当返回的数据并且按照正确的格式来发送给客户端。至于服务器端如何获得客户端传递过来的参数和如何发送数据给客户端,可参阅本系列的第一节。
分享到:
相关推荐
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...
ExtJS4学习笔记(四)---Grid的使用 ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(七)---带搜索的Grid(SearchGrid) ExtJS4学习笔记(八)---Grid多选/全选 ExtJS4学习笔记(九)...
ExtJS4学习笔记(五)---Grid分页 ExtJS4学习笔记(八)---Grid多选 全选 ExtJS4学习笔记(六)---多表头Grid ExtJS4学习笔记(十)---ExtJS4图片验证码的实现 ExtJS4学习笔记(十一)---TabPanel ExtJS4学习笔记(十三)---上传...
因此,现在几乎所有的grid控件都会支持分页功能。extjs也不例外,它对分页也提供了强大而方便的支持,使得我们在分页处理上可以得心应手。 在extjs中,类Ext.PagingToolbar封装了关于分页的操作,该类从Toolbar继承...
在"Extjs复习笔记(二十)-- tree和grid结合"这篇博文中,博主探讨了如何在EXTJS中实现树形视图(Tree)与网格视图(Grid)的融合。 Tree组件在EXTJS中通常用于显示具有层级关系的数据,例如文件系统、组织架构等。...
在本篇学习笔记中,我们将深入探讨EXTJS中最基本的Grid的构建和配置。 首先,EXTJS的Grid由多个组件构成,其中最重要的是`ColumnModel`,它负责定义Grid中的列属性。在示例代码中,我们创建了一个`ColumnModel`对象...
【ExtJs 4.x 学习笔记】 在Web应用程序开发领域,ExtJs是一个强大的JavaScript库,主要用于构建富客户端界面。随着技术的不断发展,ExtJs也不断进化,从3.x版本到4.x,再到5.x,引入了许多新特性,提升了开发效率和...
根据给定的文件信息,我们可以深入探讨两个关键的Extjs组件——Tab Panel(标签页控件)和Grid(表格控件)。这两个控件是Extjs框架中非常实用且功能丰富的部分,广泛应用于Web应用程序的界面设计与交互逻辑构建。 ...
EXTJS 学习笔片段1 Form ComboBox 远程ComboBox 替代页面上已经存在的Select控件 Grid EditorGridPanel 使用本地store Toolbar工具菜单创建 分页工具栏创建 Window 弹出处理window窗口(模态窗口) ...
所以自己学了一段时间,在专案才发现extjs的强大,无论对于开发者还是使用者他都是一场视觉盛宴,这里有我从学习开始做的一些笔记和例子也有自己收集的学习资料,里面包括分页,grid,tree,显示树信息的TreePanel、...
- **Grid组件**: Grid是EXT中的表格组件,可以用来展示大量数据,并支持排序、筛选、分页等功能。它通常与Store结合使用,动态加载数据。 - **Charts**: EXT提供了一套完整的图表组件,可以创建各种统计图表,如...
EXT 4.0 是一款流行的JavaScript库,专门用于构建富...EXT 4.0提供了丰富的API文档,允许开发者深入学习并自定义更多功能,如分页、筛选、编辑等。对于初学者来说,了解和实践这些基本概念是掌握EXT 4.0的第一步。
5. **收藏.txt**:“extjs模板的使用_收藏.txt”可能是一个用户的笔记或收藏,记录了在使用Ext JS模板过程中的一些重要点或技巧。 6. **文件夹**:"13199_files"、"17_files"和"158498923_files"通常代表了HTML文件...