论坛首页 Web前端技术论坛

扩展Dojo 0.9之Paginator

浏览 4024 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-09-05  
表格分页是十分常用的功能,ExtJs的分页做的非常Cool,但是,由于更欣赏dojo按需装载的机制和扩展性,所以决定在dojo0.9的基础上做一个Paginator widget。
下面是截图,没有和table相结合的。

这个widget在使用上是非常灵活的:
1.告诉Paginator查询函数:
js 代码
 
  1. var paginator = dijit.byId('rolesPaginator');  
  2.     if(paginator) {  
  3.         paginator.pagingFunction = function(args) {  
  4.            UserManager.queryRoles(UserManager.userId, args.pageNo);  
  5.         };  
  6.     }  

2.然后在查询函数中更新Paginator的参数:
js 代码
 
  1. UserManager.queryRoles = function(userId, pageNo) {  
  2.     UserRoleAction.getRolesOfUser(userId, pageNo, UserManager.pageSize,   
  3.              function(page) { //Dwr will call this function when query roles successfully.  
  4.               
  5.             var paginator = dijit.byId('rolesPaginator');  
  6.             //refresh paginator.  
  7.             if(paginator) {  
  8.                 paginator.setParams({  
  9.                          pageNo    : page.pageNo,  
  10.                          totalCount: page.rows,  
  11.                          pageSize  : UserManager.pageSize });    
  12.             }      
  13.         });  
  14. };  
这样Paginator就可以工作了,你可以在查询函数中同时更新Table或其他显示查询结果的节点。
Paginator的功能比较简单,但是,可以很轻易根据需要添加更多的功能。
  • jsam.rar (24.1 KB)
  • 描述: 源代码和例子,把jsam与dojo、dojox、dijit放在同一个目录下运行
  • 下载次数: 116
   发表时间:2008-01-10  
楼主,请教下Dojo Grid的问题 我用的版本是1.0.2
如何把你的这个分页器和Dojo Grid结合使用啊,请指教下啊?
谢谢
0 请登录后投票
   发表时间:2008-01-19  
1.告诉Paginator查询函数
2.然后在查询函数中更新Paginator的参数

cats_tiger已经说的非常清楚了。

pagingFunction: function(args) {
	 return this.query(args.pageNo, this.grid.model.store.getPageSize());
}

query: function query(/*number*/pageNo, /*number*/pageSize) {
	var me = this;
	this.setParams({pageNo    : pageNo,
		                  totalCount: me.grid.model.store.getCount(),
		                 pageSize  : pageSize });  
	return this.params;  
},
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics