`
li6151770
  • 浏览: 6739 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

用dwr读取后台数据

阅读更多
Ext.data.DWRProxy = function(dwrCall, pagingAndSort){
  Ext.data.DWRProxy.superclass.constructor.call(this);
  this.dwrCall = dwrCall;
  //this.args = args;
this.pagingAndSort = (pagingAndSort!=undefined ? pagingAndSort : true);
};

Ext.extend(Ext.data.DWRProxy, Ext.data.DataProxy, {
  load : function(params, reader, callback, scope, arg) {
    if(this.fireEvent("beforeload", this, params) !== false) {
      var sort;
      if(params.sort && params.dir) sort = params.sort + ' ' + params.dir;
      else sort = '';
      var delegate = this.loadResponse.createDelegate(this, [reader, callback, scope, arg], 1);
      var callParams = new Array();
      if(arg.arg) {
        callParams = arg.arg.slice();
}

if(this.pagingAndSort) {
      callParams.push(params.start);
      callParams.push(params.limit);
      callParams.push(sort);
}

      callParams.push(delegate);
      this.dwrCall.apply(this, callParams);
    } else {
      callback.call(scope || this, null, arg, false);
    }
  },

  loadResponse : function(listRange, reader, callback, scope, arg) {
    var result;
    try {
      result = reader.read(listRange);
    } catch(e) {
      this.fireEvent("loadexception", this, null, response, e);
      callback.call(scope, null, arg, false);
      return;
    }
    callback.call(scope, result, arg, true);
  },

  update : function(dataSet){},

  updateResponse : function(dataSet)
  {}
});

Ext.data.ListRangeReader = function(meta, recordType){
    Ext.data.ListRangeReader.superclass.constructor.call(this, meta, recordType);
    this.recordType = recordType;
};
Ext.extend(Ext.data.ListRangeReader, Ext.data.DataReader, {
  getJsonAccessor: function(){
      var re = /[\[\.]/;
      return function(expr) {
          try {
              return(re.test(expr))
                  ? new Function("obj", "return obj." + expr)
                  : function(obj){
                      return obj[expr];
                  };
          } catch(e){}
          return Ext.emptyFn;
      };
  }(),

read : function(o){
var recordType = this.recordType, fields = recordType.prototype.fields;

//Generate extraction functions for the totalProperty, the root, the id, and for each field
if (!this.ef) {
if(this.meta.totalProperty) {
this.getTotal = this.getJsonAccessor(this.meta.totalProperty);
}

if(this.meta.successProperty) {
this.getSuccess = this.getJsonAccessor(this.meta.successProperty);
}

if (this.meta.id) {
var g = this.getJsonAccessor(this.meta.id);
this.getId = function(rec) {
var r = g(rec);
return (r === undefined || r === "") ? null : r;
};
} else {
this.getId = function(){return null;};
}
this.ef = [];
for(var i = 0; i < fields.length; i++){
f = fields.items[i];
var map = (f.mapping !== undefined && f.mapping !== null) ? f.mapping : f.name;
this.ef[i] = this.getJsonAccessor(map);
}
}

   var records = [];
   var root = o.data, c = root.length, totalRecords = c, success = true;

   if(this.meta.totalProperty){
    var v = parseInt(this.getTotal(o), 10);
if(!isNaN(v)){
totalRecords = v;
}
}

if(this.meta.successProperty){
var v = this.getSuccess(o);
if(v === false || v === 'false'){
success = false;
}
}

for(var i = 0; i < c; i++){
    var n = root[i];
      var values = {};
      var id = this.getId(n);
      for(var j = 0; j < fields.length; j++){
f = fields.items[j];
        var v = this.ef[j](n);
        values[f.name] = f.convert((v !== undefined) ? v : f.defaultValue);
      }
      var record = new recordType(values, id);
      records[i] = record;
    }

    return {
       success : success,
       records : records,
       totalRecords : totalRecords
    };
  }
});
分享到:
评论

相关推荐

    用DWR模拟控制台实现日志主动输出到JSP页面

    这段代码创建了一个`refreshLogs`函数,它使用DWR调用后台的`getRecentLogs`方法,并将返回的日志更新到`logConsole`元素中。通过设置定时器,我们可以实现日志的实时更新,类似于控制台的滚动显示。 为了提高用户...

    dwr3实现的无刷新文件上传

    - **DWR调用**:JavaScript代码调用DWR生成的接口,传递文件数据到后台。 - **后台处理**:服务器接收到文件数据后,将其保存到指定位置,并可能执行一些验证(如文件类型、大小限制)。 - **反馈结果**:服务器...

    AJAX-dwr实现增删改查的示例代码

    2. **读取(Read)**:客户端通过DWR调用服务器端的方法获取列表中的所有数据,或者根据特定条件查询数据,然后在页面上展示。 3. **更新(Update)**:当用户修改某个对象的属性后,通过DWR更新服务器端的内存列表中的...

    dwr结合jQuery实现Ajax技术 ,Oracle作为后台数据库,jxl + poi报表

    Oracle作为后台数据库,意味着项目使用Oracle数据库存储和管理数据。Oracle是全球领先的数据库管理系统之一,以其高性能、高可扩展性和安全性著称,特别适合大型企业级应用。开发者需要熟悉SQL语法以及Oracle提供的...

    ext 与 dwr 的结合

    Grid Panel是Ext JS中用于显示和操作表格数据的重要组件,而DWR则负责在后台处理数据操作并将其结果返回给前端。 在实际的应用场景中,开发者可能会遇到以下知识点: 1. **Ext JS Grid Panel**:Grid Panel是Ext ...

    DWR.xml配置文件说明书(含源码)

    将象用exclude和incluce来通知DWR隔离creator的方法一样,converter也有一个类似的配置方法.因为指定属性转换只有针对bean才有效(基本类型的转换没有必要指定属性),这个功能只能应用与特定的converter即BeanConverter...

    DWR做的例子

    DWR使得开发人员能够使用JavaScript轻松地调用服务器端的Java方法,就像它们是本地函数一样。这种技术在创建动态、交互性强的Web应用时非常有用,特别是对于需要频繁更新数据或者执行复杂操作的场景。 **Ajax...

    省市县联动,dwr hibernate,mysql

    在前端,使用DWR来实现实时通信,当用户在前端选择一个级别时,通过Ajax请求调用后端服务,获取并显示下一级别的数据。 为了实现这个功能,你需要了解JavaScript基础、DWR的API用法、Hibernate的配置和映射、以及...

    一个Spring+hibernate+dwr的例子程序

    在这个项目中,DWR3.0可能被用来实现在前端页面与后台服务之间的交互,比如实时数据显示或者用户输入的即时验证。 4. **LigerUI**:LigerUI是一个基于jQuery的前端UI框架,提供了丰富的组件和样式,如表格、表单、...

    DWR+FileUpload上传

    在“DWR+FileUpload”场景中,DWR主要负责在后台处理文件上传请求,并将进度信息反馈给前端。 **文件上传** 文件上传是Web应用中用户交互的重要部分,允许用户将本地文件传输到服务器。在HTML5之前,文件上传通常...

    struts2.spring.hibernate.dwr整合的一个小项目

    在本项目中,Hibernate用于处理数据库的CRUD(创建、读取、更新、删除)操作,通过HQL(Hibernate查询语言)或SQL进行数据查询,使得数据库操作更加简洁高效。 Direct Web Remoting(DWR)是一个JavaScript库,它...

    XML DWR 解析dom 解析xml Ajax 杂乱的例子

    Ajax的核心是异步数据交换,它利用JavaScript和XMLHttpRequest对象在后台与服务器通信,无需刷新整个页面。一个典型的Ajax流程包括创建XMLHttpRequest对象、打开连接、发送请求、处理响应。DWR简化了这个过程,提供...

    采用dwr+ajax和struts开发文件上传进度条

    - 它通过在后台与服务器进行少量数据交换,使网页实现异步更新,为用户提供流畅的交互体验。 3. **Struts** - Struts是一个基于MVC设计模式的Java Web应用框架,主要用于构建可扩展的企业级应用。 - 在文件上传...

    Ext 操作数据库,对数据的增删改查,包括数据库,Ajax请求和store请求的设置

    对于远程数据,通常会使用Ajax请求(DWR或者Ext.Ajax)从服务器获取JSON或XML格式的数据。 更新(Update):当用户修改了数据,Store会自动检测到这些变化。调用`sync()`方法会将更新后的数据发送回服务器,后台...

    sqlserver数据库连接驱动,c.tld,dom4j-1.6.1.jar,dwr.jar

    它支持XPath查询,能够方便地读取和写入XML数据,是Java开发者处理XML文档时常用的库。在1.6.1这个版本中,可能包含了对XPath 1.0的支持,错误处理机制,以及对XML Schema和DTD的支持等特性。 最后,`dwr.jar`是...

    artDialog and ExcleTool

    DWR使得在浏览器端可以调用服务器端的Java方法,就像它们是本地函数一样,这在处理Excel数据时非常有用,比如使用ExcleTool处理后的数据可以通过DWR直接返回给前端。 结合以上信息,我们可以探讨以下知识点: 1. *...

    DWRselect(附Ant).rar

    这个"**DWRselect(附Ant)**.rar"文件很可能包含一个示例项目,演示了如何使用DWR来创建一个AJAX级联下拉框,其中数据是从XML文件中读取的。在这个场景中,用户在一个下拉框的选择会影响到另一个下拉框的内容,这种...

    搜索引擎中对关键字的搜索建议实现

    DWR负责后台与前端的通信,jQuery则简化了前端的DOM操作和事件处理,两者结合为开发带来了便利,提升了用户体验。在实际应用中,还需要考虑性能优化、安全性以及跨浏览器兼容性等问题,确保功能的稳定和可靠。

    最牛的Ajax实例通俗易懂

    - **异步数据交换**:DWR通过Ajax技术实现后台数据交换,无需刷新整个页面,提高了用户体验。例如,用户输入数据后,可能实时验证输入的有效性,或者在不离开当前页面的情况下加载更多内容。 - **错误处理**:良好...

    深入浅出Ext_JS:数据存储与传输

    总结来说,Ext.data是Ext_JS框架中处理数据的核心部分,它提供了强大的数据存储、读取和传输能力。通过灵活的Store、Reader和Proxy机制,开发者可以轻松地从各种数据源获取数据并呈现给用户。同时,Ext.data....

Global site tag (gtag.js) - Google Analytics