欢迎访问中国最大的EXTJS讨论社区 首页 论坛 教程

Ext教程-一起Ext

当前位置: 首页 > 教程 > Ext Data Store >

Ext.data专题十(一):在EXT中直接使用DWR

时间:2009-04-13 23:00来源: 作者: 点击:
因为 DWR 在前台的表现形式和普通的 JavaScript 完全一样,所以我们不需要特地去做些什么,直接使用 EXT 调用 DWR 生成的 JavaScript 函数即可。以 Grid 为例,比如现在我们要显示一个通讯录

  

因为DWR在前台的表现形式和普通的JavaScript完全一样,所以我们不需要特地去做些什么,直接使用EXT调用DWR生成的JavaScript函数即可。以Grid为例,比如现在我们要显示一个通讯录的信息,后台记录的数据有:idnamesexemailteladdTimedescn。编写对应的POJO,代码如下所示。

 

public class Info {

    long id;

    String name;

    int sex;

    String email;

    String tel;

    Date addTime;

    String descn;

}

 

然后编写操作POJOmanager类,代码如下所示。

 

public class InfoManager {

    private List infoList = new ArrayList();

 

    public List getResult() {

        return infoList;

    }

}

 

代码部分有些删减,我们只保留了其中的关键部分,就这样把这两个类配置到dwr.xml中,让前台可以对这些类进行调用。

下面是EXTDWR交互的关键部分,我们要对JavaScript部分做如下修改,如代码清单10-7所示。

代码清单 使用EXT调用DWR

var cm = new Ext.grid.ColumnModel([

    {header:'编号',dataIndex:'id'},

    {header:'名称',dataIndex:'name'},

    {header:'性别',dataIndex:'sex'},

    {header:'邮箱',dataIndex:'email'},

    {header:'电话',dataIndex:'tel'},

    {header:'添加时间',dataIndex:'addTime'},

    {header:'备注',dataIndex:'descn'}

]);

 

var store = new Ext.data.JsonStore({

    fields: ["id","name","sex",'email','tel','addTime','descn']

});

 

// 调用DWR取得数据

infoManager.getResult(function(data) {

    store.loadData(data);

});

 

var grid = new Ext.grid.GridPanel({

    renderTo: 'grid',

    store: store,

    cm: cm

});

 

注意,执行infoManager.getResult()函数时,DWR就会使用Ajax去后台取数据了,操作成功后调用我们定义的匿名回调函数。在这里我们只做一件事,那就是将返回的data直接注入到ds中。

DWR返回的data可以被JsonStore直接读取,我们需要设置对应的fields参数,以告诉JsonReader需要哪些属性。

在这里,EXTDWR两者之间没有任何关系,将它们任何一方替换掉都可以。实际上它们只是在一起运行,并没有整合。我们给出的这个示例也是说明了一种松耦合的可能性,实际操作中完全可以使用这种方式。

 

声明:本站教程文章版权为一起Ext(http://www.17ext.com/)所有,转载请注明出处
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容