- 浏览: 1434168 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 23891. dragdrop 继承层次 dd - ... -
Extjs 实践细节备忘 -2
2009-04-12 05:43 27051. grid 列宽问题 可以指定 每列的宽度数值 ... -
Extjs 实践细节备忘 -1
2009-04-11 01:47 2664在使用 extjs 开发 OAOP 应用中 ,除了API文档外 ... -
长字串换行问题
2009-03-01 23:10 5695很久没用过 ,textarea ... -
Extjs portal 应用初探
2009-02-24 23:09 5959近期在研究拖放的实现 ,看了看 Extjs 的 portal ... -
Extjs 模块化动态加载js实践
2009-01-09 18:12 23384前一段转载了一篇 透明加载外部 javascript ... -
Extjs 聊天窗口 -续3 用pushlet来实现
2008-12-23 22:16 15936前一篇 自己实现了http长连接 , 很繁琐,后 ... -
Extjs 聊天窗口 -续2 - http长连接的实现
2008-12-16 00:55 13239认为长连接就是有个http请求被服务器阻塞了 ,这样的话浏览 ... -
Extjs CRUD 模板
2008-12-12 00:52 7739也算是一个总结吧,备忘,总结了一个增删改查的例子,以后要达到的 ... -
Ext 聊天窗口的实现 - 续
2008-12-02 15:13 6610<filter> <fil ... -
Ext 树操作
2008-11-10 23:21 4437后台 树 节点 定义 menu_info { ... -
Ext 一个聊天窗口的设计
2008-11-10 00:26 37321.关键是要 弹性设计,自动适应浏览器 部件要: ... -
Ext.data.Store 与 GridFilters
2008-11-03 16:12 5320Store 每次 reload 会记着上次的参数,比如 pa ... -
Ext 实现 文件上传 进度显示
2008-10-24 18:15 5129利用了 ahxu-commons-fileuploadex-b ... -
Ext official doc - class-event-observer
2008-10-23 18:20 1390....ppt -
Ext 多文件上传面板扩展
2008-10-23 16:53 8331扩展了 Ext.Panel ,加入文件框列表 ,并控制删 ... -
Ext Grid 表头显示问题
2008-09-27 23:51 3295出现问题了,当 Grid div 放在 table 布局下的话 ... -
JSON marsh && unmarsh
2008-09-23 00:46 1913Ext 端用 //Encodes an Objec ... -
[extjs] formpanel 标准提交问题
2008-09-19 02:29 3287formpanel 的 标准提交 有 bug? var ta ... -
ComboBox 传值问题
2008-09-19 00:07 5186field -> textfield->trigg ...
相关推荐
DWR AJAX框架(包含使用教程)DWR AJAX框架(包含使用教程)
AJAX DWR教程AJAX DWR教程AJAX DWR教程AJAX DWR教程AJAX DWR教程AJAX DWR教程AJAX DWR教程AJAX DWR教程
dwr实现ajax功能ajax+dwr.........................
dwr ajax 局部刷新java的 回调函数
dwr的使用和ajax的使用demo
dwr ajax完整示例,内有dwr配置说明文档,不懂的可以跟着学一下! eclicps工程
DWR AJAX 级联下拉菜单,动态调用远程方法
dwr反向Ajax的三种情况dwr反向Ajax的三种情况
dwr反向ajax使用,即时提醒。WEB网页实现右下角时时弹出提醒DIV
struts2 dwr ajax 配置 局部刷新
这是简单的DWR Ajax入门例子,希望能够帮助不知道怎么入门的朋友。
ajax 中流行框架dwr 本人写的官方的例子。。。不容错过对Ajax的同学。
ajax结合dwr实现联动标签,认真阅读文件包
即时通讯DWR Reverse Ajax
也是从论坛上找的相关DWR知识,自己写了一个异步验证用户名密码的程序。 包括建库脚本。...基于SSH的配合DWR实现的AJAX验证用户名密码程序,里面还包含一些JS验证邮箱电话等等的脚本。希望对你有帮助
DWR实现AJAX验证实例,通过输入的数查询数据库字段是否存在。在前台显示。eclips实现。
Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子) Ajax(DWR实现例子)
这是一个初学dwr的小实例,实现文件上传。
这两本书来的也不容易,所以想跟大家分享一下,想学着两个技术的,看完绝对不后悔。