- 浏览: 1471110 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
luhouxiang:
写的很不错,学习了
Extjs 模块化动态加载js实践 -
kingkongtown:
如果想改成淘宝后台那样,可以在编辑器批量上传图片呢?
kissy editor 阶段体会 -
317966578:
兄弟我最近也在整jquery和caja 开放一些接口。在git ...
caja 原理 : 前端 -
liuweihug:
Javascript引擎单线程机制及setTimeout执行原 ...
setTimeout ,xhr,event 线程问题 -
辽主临轩:
怎么能让浏览器不进入 文档模式的quirks模式,进入标准的
浏览器模式与文本模式
Grid 应该是任何一个标准库的重中之重,extjs 表格采用 mvc 结构,就先不细说了,而他的 bbar 分页,换页的方式并没有文档详细记载,当然是关于 ajax 的方式,经过试验 应该有两种方式,以采用 dwr 为例
1。直接 修改store 的 load 方法 :(看 simplestore 的 源码)
store.load = function (hoptions) { var params = hoptions.params; function showJobInside(arrayJobs) { Ext.MessageBox.hide(); var html = ""; if (arrayJobs == null || arrayJobs == undefined || arrayJobs.list == null || arrayJobs.list == undefined) { arrayJobs = {}; arrayJobs.list = new Array(); arrayJobs.total = 0; } var ddata = new Array(); for (var i = 0; i < arrayJobs.list.length; i++) { var tob = arrayJobs.list[i]; var tmpJobtitle = filterNull(getLabel(theJobCategories, filterNull(tob.jobTitle))); ddata.push([ tob.employerId, filterNull(tob.employerName), tob.jobId, tmpJobtitle, tob.desiredCount, filterNull(tob.enterTime.toLocaleString()), filterNull(getLabel(theExperienceMap, filterNull(tob.requiredExperience))), tob.jobDesc]); } var o = store.reader.readRecords(ddata); o.totalRecords = arrayJobs.total; window.store.loadRecords(o, hoptions, true); } Ext.MessageBox.wait('数据加载中 ...', '招聘求职'); JobSearcher.searchJobs($F('jobDay'), $F('jobAddress'), $F('jobCategory'), $F('jobType'), $F('industry'), getJobTitle(), getEmployName(), params['start'], params['limit'], { callback: showJobInside, timeout: TIMEOUT, errorHandler: function (message) { Ext.MessageBox.hide(); alert("Error: " + message); } }); }
关键 :
var o = store.reader.readRecords(ddata); o.totalRecords = arrayJobs.total; window.store.loadRecords(o, hoptions, true);
代码结构不好 。。。。
2. 采用 Ext.ux.data.DWRProxy.js
javascript :
var py = window.store = new Ext.data.Store({ reader: new Ext.data.JsonReader({ id: 'employerIdStore', totalProperty: 'totalCount', root: 'rows', fields: [{ name: 'employerId' }, { name: 'employerName' }, { name: 'jobId' }, { name: 'jobTitle' }, { name: 'desiredCount' }, { name: 'enterTime' }, { name: 'requiredExperience' }, { name: 'jobDesc' }, { name: 'agencyProvide' }] }), proxy: new Ext.ux.data.DWRProxy({ dwrFunction: JobSearcher.loadSearchJob, // dwrFunction : Grid.loadData, listeners: { 'beforeload': function (dataProxy, params) { var condition = { 'jobDay': $F('jobDay'), 'jobAddress': $F('jobAddress'), 'jobCategory': $F('jobCategory'), 'jobType': $F('jobType'), 'industry': $F('industry'), 'jobTitle': getJobTitle(), 'employName': getEmployName() }; var p = Ext.apply({}, condition, params); params[dataProxy.loadArgsKey] = [Ext.encode(p)]; // alert(Ext.encode(p)); }, 'loadexception': function (d, m) { Ext.Msg.alert('注意', '职位必须选择'); return; } } }) });
java :
public static HashMap loadSearchJob(String params) throws Exception { JSONObject jsonParams = JSONObject.fromObject(params); String issueDay = jsonParams.getString("jobDay"); String jobTitle = jsonParams.getString("jobTitle"); String employName = jsonParams.getString("employName"); String workAddress = jsonParams.getString("jobAddress"); String jobCategory = jsonParams.getString("jobCategory"); if(jobCategory.equals("") ){ throw new Exception("请选择职位。"); } String jobType = jsonParams.getString("jobType"); String industry = jsonParams.getString("industry"); int fromNo = jsonParams.getInt("start"); int maxCount = jsonParams.getInt("limit"); MhrGetJobsRsp rsp = searchJobs(issueDay, workAddress, jobCategory, jobType, industry, jobTitle, employName, fromNo, maxCount); int total = 0; List<JSON> list = new ArrayList<JSON>(); if (rsp.getList() != null) { for (int i = 0; i < rsp.getList().length; i++) { JSON json = JSONSerializer.toJSON(rsp.getList()[i]); list.add(json); } total = rsp.getTotal(); } else { } HashMap<String, Object> map = new HashMap<String, Object>(); map.put("totalCount", total); map.put("rows", list); // String str = JSONSerializer.toJSON(map).toString(); return map; }
我第一次看了 n 多源代码,因为不想介入ext的网络传输,结果搞出了第一种方法,痛苦啊,后来在网上看到了 proxy,才想起
ext store 是可以 设proxy的,
当时以为 proxy 很难写,不过看了牛人写的确实不简单,附件我上传了,大家看看。
- Ext.ux.data.DWRProxy.rar (1.8 KB)
- 描述: proxy 代理 m 层
- 下载次数: 79
发表评论
-
Extjs 实践细节备忘 -3
2009-04-12 20:26 24361. dragdrop 继承层次 dd - ... -
Extjs 实践细节备忘 -2
2009-04-12 05:43 27541. grid 列宽问题 可以指定 每列的宽度数值 ... -
Extjs 实践细节备忘 -1
2009-04-11 01:47 2717在使用 extjs 开发 OAOP 应用中 ,除了API文档外 ... -
长字串换行问题
2009-03-01 23:10 5802很久没用过 ,textarea ... -
Extjs portal 应用初探
2009-02-24 23:09 6014近期在研究拖放的实现 ,看了看 Extjs 的 portal ... -
Extjs 模块化动态加载js实践
2009-01-09 18:12 23519前一段转载了一篇 透明加载外部 javascript ... -
Extjs 聊天窗口 -续3 用pushlet来实现
2008-12-23 22:16 16115前一篇 自己实现了http长连接 , 很繁琐,后 ... -
Extjs 聊天窗口 -续2 - http长连接的实现
2008-12-16 00:55 13347认为长连接就是有个http请求被服务器阻塞了 ,这样的话浏览 ... -
Extjs CRUD 模板
2008-12-12 00:52 7830也算是一个总结吧,备忘,总结了一个增删改查的例子,以后要达到的 ... -
Ext 聊天窗口的实现 - 续
2008-12-02 15:13 6720<filter> <fil ... -
Ext 树操作
2008-11-10 23:21 4520后台 树 节点 定义 menu_info { ... -
Ext 一个聊天窗口的设计
2008-11-10 00:26 37801.关键是要 弹性设计,自动适应浏览器 部件要: ... -
Ext.data.Store 与 GridFilters
2008-11-03 16:12 5374Store 每次 reload 会记着上次的参数,比如 pa ... -
Ext 实现 文件上传 进度显示
2008-10-24 18:15 5222利用了 ahxu-commons-fileuploadex-b ... -
Ext official doc - class-event-observer
2008-10-23 18:20 1450....ppt -
Ext 多文件上传面板扩展
2008-10-23 16:53 8386扩展了 Ext.Panel ,加入文件框列表 ,并控制删 ... -
Ext Grid 表头显示问题
2008-09-27 23:51 3353出现问题了,当 Grid div 放在 table 布局下的话 ... -
JSON marsh && unmarsh
2008-09-23 00:46 1995Ext 端用 //Encodes an Objec ... -
[extjs] formpanel 标准提交问题
2008-09-19 02:29 3345formpanel 的 标准提交 有 bug? var ta ... -
ComboBox 传值问题
2008-09-19 00:07 5305field -> textfield->trigg ...
相关推荐
通过DWR,我们可以使用JavaScript直接调用服务器端的Java方法,实现Ajax(Asynchronous JavaScript and XML)的功能,即在后台与服务器交互数据并局部更新网页。 **Ajax**的核心是利用JavaScript进行异步数据请求,...
【DWR(Direct Web Remoting)与Ajax技术详解】 DWR(Direct Web Remoting)是一种在Web应用程序中实现异步JavaScript和XML(Ajax)的方法,它简化了客户端和服务器之间的通信,使得动态更新网页变得更加简单。DWR...
标题提及了“dwr和ajax技术”,这意味着我们要讨论的是两种用于创建动态Web应用程序的技术。DWR(Direct Web Remoting)是一种Java库,它允许JavaScript和Java在浏览器与服务器之间进行双向通信,而Ajax...
DWR利用AJAX(Asynchronous JavaScript and XML)技术,实现了浏览器与服务器之间的无刷新通信,使得用户界面更加动态和响应迅速。 1. **DWR框架基础** DWR的核心概念是反向Ajax,它创建了一种机制,使得...
"dwr ajax 局部刷新"指的是使用DWR框架来更新网页的特定部分,而不是重新加载整个页面,提高用户体验。 **DWR基本概念:** 1. **CMT (Controlled Method Table)**:DWR的核心组件,负责管理服务器端的Java方法和...
在“dwr.rar_dwr_dwr ajax_dwr 实现 联动 标签”这个项目中,我们将探讨如何利用DWR和AJAX技术来创建一个动态的、具有联动效果的标签系统。 1. **DWR基础**: DWR的核心组件包括一个服务器端的Servlet(DWR Engine...
标题中的“dwr ajax完整示例”指的是Direct Web Remoting (DWR) 技术与AJAX(Asynchronous JavaScript and XML)的结合应用。DWR是一种开源Java库,它允许Web应用程序在浏览器和服务器之间安全地进行双向通信,使得...
在这个特定的项目中,"dwr ajax 下拉框自动搜索"是指利用DWR框架和AJAX技术来创建一个功能,用户在输入框中输入关键词时,下拉框会自动填充匹配的建议,类似百度搜索的体验。当用户选择某个选项或点击搜索按钮,系统...
【标题】:“jsp j2ee dwr ajax dwr登陆”这一主题涉及的是在Web开发中使用Java Server Pages (JSP)、Java 2 Platform, Enterprise Edition (J2EE)、Direct Web Remoting (DWR)以及Asynchronous JavaScript and XML ...
Direct Web Remoting (DWR) 是一个开源Java库,它允许在浏览器和服务器之间进行安全、高效的异步通信,即所谓的“反向AJAX”或“Comet”技术。DWR使得JavaScript能够调用服务器端的Java方法,就像它们是本地函数一样...
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在浏览器端与服务器端的Java对象进行交互,实现了Ajax(Asynchronous JavaScript and XML)技术的一种高效应用。在传统的Web应用中,用户发起请求,服务器...
DWR(Direct Web Remoting)是实现这种功能的一种技术,尤其以其独特的Reverse Ajax特性在服务器推送(Server-Sent Events, SSE,也常被称为Comet技术)领域中备受关注。下面我们将深入探讨DWR Reverse Ajax的工作...
DWR (Direct Web Remoting) 是一个开源的Java库,它允许在Web应用程序中实现JavaScript与服务器端Java代码之间的直接通信。这个强大的工具使得开发者能够轻松地构建动态、富交互性的网页应用,而无需处理复杂的AJAX...
DWR (Direct Web Remoting) 是一个开源Java库,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行异步通信,实现了类似Ajax的功能。在这个小实例中,我们将探讨如何使用DWR来实现实时的文件上传功能,这...
**DWR:Direct Web Remoting,让Ajax变得简单** DWR(Direct Web Remoting)是一种JavaScript库,它允许Web应用程序实现服务器端与客户端之间的实时、双向通信,无需使用复杂的Ajax技术。DWR使得开发者能够像调用...
【标题】"my_employee_study.rar_Employee Stud_ajax_dwr_dwr ajax_上传 Java" 提供了一个关于员工学习的场景,特别关注的是AJAX、DWR技术以及Java在文件上传中的应用。这个压缩包包含了作者在公司近两个月内通过...
DWR简化了Ajax(Asynchronous JavaScript and XML)应用的开发,使得Web应用可以更加动态和交互。在本示例中,我们有一个关于DWR的完整案例,包括配置说明文档和一个Eclipse工程,这对于初学者或者想要深入理解DWR的...
DWR的核心概念是通过Ajax(Asynchronous JavaScript and XML)实现页面局部更新,提高用户体验。在这个"简单入门例子"中,我们将深入探讨DWR的基本用法和设置步骤。** 首先,我们需要理解DWR的工作原理。DWR通过在...
**DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript在浏览器端直接调用服务器端的Java方法,实现Ajax(异步JavaScript和XML)应用。DWR简化了客户端与服务器端的交互,使得开发人员可以更加便捷地...