学习使用GridPanel需要先了解Json ,和 Ext.data.Store
json介绍见 http://blog.csdn.net/wayfoon322/archive/2008/07/10/2633428.aspx
Ext.data.Store介绍见:http://blog.csdn.net/wayfoon322/archive/2008/07/11/2638387.aspx
后台需要提供json数据供前台显示。比如下列的json数据
-
stcCallback1001
-
({results:6,template:
-
[
-
{id:1,name:'流程1',user:{id:1,name:'wayfoon'}},
-
{id:2,name:'流程2',user:{id:1,name:'wayoon'}},
-
{id:3,name:'流程3',user:{id:1,name:'wayfoon'}},
-
{id:4,name:'流程4',user:{id:1,name:'wayfoon'}},
-
{id:5,name:'流程5',user:{id:1,name:'wayfoon'}},
-
{id:6,name:'流程6',user:{id:1,name:'wayfoon'}}
-
]
- })
stcCallback1001,由ext提供的参数callback自动生成 ,在后台代码中request.getParameter()得到,从1001开始,1002,1003
results 表示记录总数,results这个名称是自定义的,自己可以设定,比如 total:6
template 真正的数据,名称也是自定义的,以下面Ext.data.Store 中的一致就可以。
{id:1,name:'流程1',user:{id:1,name:'wayfoon'}}, 是一条记录,可以看出 user 是一个对象,如果数据中不包含对象不需要这样写
你也可以访问 'http://extjs.com/forum/topics-remote.php' 查看json数据格式,做个比较。
访问后台数据通常是一个链接,
假如你的后台采用java ,又使用Struts2.0 。一切都变的简单。你可以直接,
-
Stringinfo="{id:'1',name:'wayfoon'}";
-
request.setAttribute("info",info);
-
returnSUCCESS;
info 是String ,值就是json格式的字符串。
假如你采用servlet则可以
-
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
-
response.addHeader("Cache-Control","no-cache");
-
response.setContentType("HTML/JavaScript;charset=UTF-8");
-
PrintWriterout=response.getWriter();
-
Stringjson="{id:'1',name:'wayfoon'}";
-
out.print(json)");
-
}
- }
下面介绍前台Ext部分,可以直接参考
例子: EXT2.0: GridPanel 分页方法绝好例子
下面着重介绍ext和后台的交互,
-
varstore=newExt.data.Store({
-
proxy:newExt.data.ScriptTagProxy({url:'http://extjs.com/forum/topics-remote.php'}),
-
reader:newExt.data.JsonReader({
-
root:'topics',
-
totalProperty:'totalCount',
-
id:'post_id'
-
},[
-
'post_id','topic_title','author'
-
])
-
});
- store.load({params:{start:0,limit:10}});
proxy:是数据代理,数据代理(源)基类由Ext.data.DataProxy定义,在DataProxy的基础,ExtJS提供了Ext.data.MemoryProxy、Ext.data.HttpProxy、Ext.data.ScriptTagProxy等三个分别用于从客户端内存数据、Ajax读取服务器端的数据及从跨域服务器中读取数据等三种实现。
从上面代码中可以看到 代理提交的 url是 'http://extjs.com/forum/topics-remote.php' 。
实际上在后台接收到的,url是 'http://extjs.com/forum/topics-remote.php?callback=1001&start=0&limit=10' 还有一个参数忘了。
后台处理代码:struts2.0
-
-
-
publicStringexecute()throwsException
-
{
-
Stringaction=request.getParameter("action");
-
Stringinfo="";
-
Stringcallback=request.getParameter("callback");
-
Stringstart=request.getParameter("start");
-
Stringlimit=request.getParameter("limit");
-
-
StringBuffertext=newStringBuffer();
-
List<?>list=从数据库中去的数据,你可以分页取;
-
Integerlimit=tv.getStart()+tv.getLimit();
-
if(limit>list.size())
-
{
-
limit=list.size();
-
}
-
List<?>templates=list.subList(start,limit);
-
text.append(callback+"({results:"+list.size()
-
+",template:[");
-
for(Itemplateitemplate:templates)
-
{
-
text.append("{id:"+itemplate.getId()+",name:'"
-
+itemplate.getName()+"',user:{id:"
-
+itemplate.getIuser().getId()+",name:'"
-
+itemplate.getIuser().getUname()+"'}},");
-
}
-
if(text.charAt(text.length()-1)==',')
-
{
-
text.deleteCharAt(text.length()-1);
-
}
-
text.append("]})");
-
info=text.toString();
-
request.setAttribute("info",info);
-
returnSUCCESS;
-
}
-
info就是需要的json字符串
输出
-
stcCallback1001
-
({results:6,template:
-
[
-
{id:1,name:'流程1',user:{id:1,name:'wayfoon'}},
-
{id:2,name:'流程2',user:{id:1,name:'wayfoon'}},
-
{id:3,name:'流程3',user:{id:1,name:'wayfoon'}},
-
{id:4,name:'流程4',user:{id:1,name:'wayfoon'}},
-
{id:5,name:'流程5',user:{id:1,name:'wayfoon'}},
-
{id:6,name:'流程6',user:{id:1,name:'wayfoon'}}
-
]
- })
效果见 例子: EXT2.0: GridPanel 分页方法绝好例子
写完,一个上午才完成两遍,太慢了。
教程下载地址:http://download.csdn.net/source/594644
---wayfoon 20080827
分享到:
相关推荐
8. **强大的表格功能**:EXT 2.0的GridPanel组件支持分页、排序、过滤、编辑等功能,可以处理大量数据并提供高效的显示和操作。 9. **拖放支持**:EXT 2.0支持组件之间的拖放操作,可以用于构建交互式的应用,如...
5. **数据网格**:Ext的GridPanel是一个功能强大的数据展示组件,可以用来展示大量数据并进行排序、筛选、编辑等操作。它支持行选择、分页、列拖放等功能,是处理表格数据的理想选择。 6. **API文档**:中文文档中...
6. **GridPanel**:EXT的表格组件,可展示大量数据并支持排序、过滤、分页等功能。 7. **FormPanel**:用于创建表单,支持各种表单元素,并能进行验证和数据提交。 8. **Drag and Drop**:EXT支持拖放操作,允许...
4. **数据绑定**:EXT2.0支持数据绑定,能够将UI组件与数据源(如Store)连接起来,实现数据的实时更新。Store可以连接到各种数据源,如JSON、XML或远程API。 5. **Ajax通信**:EXT的Ajax模块提供了一种简单的方式...
3. **表格网格**:Ext 2.0的表格组件(GridPanel)功能强大,支持分页、排序、过滤、编辑等功能,能处理大量数据并实现高性能渲染。同时,它还提供了行选择、行编辑等多种交互模式。 4. **表单组件**:Ext 2.0提供...
4. **表单处理**:EXT2.0提供了强大的表单处理功能,包括字段验证、数据绑定和远程提交等。 5. **图表组件**:EXT2.0支持多种图表类型,如柱状图、饼图、线图等,用于数据可视化。 6. **拖放功能**:EXT2.0支持...
2. **数据绑定**:EXT2.0实现了模型-视图-控制器(MVC)架构,允许数据与UI组件进行双向绑定,提高了数据管理的效率和灵活性。 3. **Ajax支持**:内置的Ajax工具类简化了异步请求,开发者可以轻松地与服务器进行...
3. **数据绑定**:EXT的数据绑定机制允许开发者将界面组件直接连接到数据源,实现数据的实时更新。这部分会涵盖Store(数据存储)、Model(数据模型)和Proxy(数据代理)的使用。 4. **事件处理**:EXT的事件驱动...
5. **分页和数据加载**:EXT2.0的GridPanel支持分页,你将看到如何配置和使用PagingToolbar来实现分页功能,以及如何在用户翻页时动态加载数据。 6. **自定义行为**:EXT GridPanel允许开发者自定义很多行为,例如...
例如,文档中会阐述EXT的GridPanel组件,这是一个用于展示表格数据的强大组件,支持排序、分页、行选择等多种功能。开发者可以通过学习GridPanel的配置项和方法,了解如何创建自定义的表格视图。 此外,EXT的窗口...
1. **强大的UI组件**:Ext 2.0拥有大量的UI组件,如表格、树形结构、网格等,这使得开发者可以快速搭建用户界面。 2. **易于使用的API**:Ext 2.0的API设计友好,易于理解,即使是初学者也能快速上手。 3. **高度可...
Grid组件在Ext2.0框架中主要用于展示表格形式的数据,支持多样的数据源类型,包括二维数组、JSON数据和XML数据,甚至是用户自定义的数据格式。这一灵活性得益于框架提供的`Ext.data.Store`,它作为数据与Grid间的...
在描述中提到,Ext2.0的Grid控件不仅美观,还支持多种数据格式,如二维数组、JSON和XML,甚至允许自定义数据类型。 Grid的核心组成部分包括ColumnModel(列模型)和Store(数据存储)。ColumnModel定义了表格的结构...
这个模块包含了EXT 2.0的各种组件,如表格(GridPanel)、树形视图(TreePanel)、表单(FormPanel)、按钮(Button)、菜单(Menu)等。这些组件都具有丰富的配置选项和事件处理能力,可以根据需求进行高度定制。 ...
Grid是Ext2.0中用于展示数据的重要组件之一,它不仅能够显示各种格式的数据(如二维数组、JSON或XML),还支持数据的排序、过滤和分页等功能。Grid的核心在于`Ext.grid.GridPanel`类及其相关的配置项。 ##### 1. ...
EXT2.0的分页功能不仅限于简单的数字翻页,还可以与其他组件结合,如GridPanel,实现表格数据的分页。同时,EXT2.0还支持远程分页和本地分页,前者将分页逻辑交给服务器处理,后者则在客户端完成,适用于数据量较小...
GridPanel是一个显示二维数据的组件,通常用于展示大量结构化的信息。在我们的例子中,我们将看到如何通过JavaScript代码来动态构建GridPanel。 在前端部分,HTML代码设置了必要的资源引用,包括CSS样式表和ExtJS的...
例如,可以使用GridPanel API构建复杂的数据展示表格,通过ColumnModel定制列的显示方式,甚至实现分组、排序和过滤功能。此外,FormPanel API则支持创建各种表单,与服务器端进行数据交互,提供验证和提交功能。 ...
GridPanel 是 ExtJS(Ext.NET 的基础)中的一个重要组件,用于展示数据表格。在这个场景中,我们将深入探讨如何使用Ext.NET代码动态创建GridPanel,并在各种窗口中灵活展示。 1. **动态创建GridPanel**: 在Ext...
最终,我们使用Ext.grid.GridPanel显示了从后台获取的数据。 ExtJS框架提供了许多强大的功能和组件,例如表格控件、树形控件、表单控件等,使开发者能够快速构建RIA应用程序。 知识点: 1. ExtJS框架的基本概念...