一个简单的ext分页例子

学习ext也有一段时间了,明白只有不断的总结,才能让自己进步的更快,遂写此文,权当积累经验~呵呵 

ext首先需要导入的三个东西:

<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css"/>
<script type="text/javascript" src="ext/adapter/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>

 注:我的ext是2.0版本的。(这里有段小插曲,在link一列,如果你有某个单词写错的话,那么你的ext hellowrld例子就可能只有文字,没有样式了!另外一个需要注意的地方就是在引入ext-all.css的时候,最好吧整个resource目录都copy过来,因为我碰到一个问题就是如果说只有一个ext-all.css文件的话,那么你在页面上想要显示一个复选框之类的东西是显示不出来的,而且分页的按钮的图片也不会显示出来。)

<script type="text/javascript">
Ext.onReady(
function(){
    //列模型 , 即column model
var cm = new Ext.grid.ColumnModel([{header:'编号',dataIndex:'id'},
{header:
'名称',dataIndex:'name'},
{header:
'描述',dataIndex:'descn'}]);
     //数据源
var ds = new Ext.data.Store({
proxy:
new Ext.data.HttpProxy({url:'data.jsp'}),
reader:
new Ext.data.JsonReader({totalProperty:'totalProperty',root:'root'},[{name:'id'},
{name:
'name'},
{name:
'descn'}
]),
});
      //初始化加载数据
ds.load({params:{start:
0,limit:10}});
var grid = new Ext.grid.GridPanel({
el:
'grid',//在body里要有个<div id="grid" style="height:270px;"></div>的东西,主要就是为了让系统知道表格显示的位置,后面的style属性主要是分页显示数据的时候所占的高度  
ds:ds,
cm:cm,

bbar:new Ext.PagingToolbar({ //分页工具条
pageSize:
10,
store:ds,
displayInfo:
true,
displayMsg:
'显示第{0}条到第{1}条记录,一共{2}条',
emptyMsg:
'没有记录'
})
});
grid.render();//渲染
});
</script>

  前面说的都是前台的代码,下面把后台代码贴上:(即data.jsp)

<%
int index = new Integer(request.getParameter("start") == null ? "0": request.getParameter("start"));
System.out.println(
"index="+index);
int pageSize = Integer.parseInt(request.getParameter("limit")==null?"10":request.getParameter("limit"));
System.out.println(
"pageSize="+pageSize);
String json
= "{totalProperty:100,root:[";
for(int i=index;i<pageSize+index;i++)
{
json
+="{id:"+i+",name:"+"'"+i+"'"+",descn:"+"'"+i+"'"+"}";
if(i != pageSize+index-1){
json
+=",";
}
}
json
+="]}";
response.getWriter().write(json);
System.out.println(json);
%>

注:这里不需要用html标签,因为如果有html的标签的时候,返回的东西就不能被前台的jsonreader正确解析,后台的数据格式必须是这样:

{totalProperty:100,root:[{id:0,name:'name',descn:'descn'},{id:1,name:'name1',descn:'descn1'},{id:2,name:'name2',descn:'descn2'}}

 做到这一步,一个ext分页的例子就完成了~呵呵,下面是页面截图:

 参考资料:ext入门到精通....

  

 

posted @ 2011-07-19 15:25  yinyuyi  阅读(1166)  评论(0编辑  收藏  举报