- 浏览: 238016 次
文章分类
最新评论
-
xryy001:
...
AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameter -
springdata_springmvc:
bootstrap demo实例教程源代码下载:http:// ...
Bootstrap css修正 -
2047699523:
bootstrap demo实例教程源代码下载:http:// ...
Bootstrap table -
andinyg:
因开发使用的jdk7,其他版本不能解决问题,找了下
jdk7下 ...
AES加密时抛出java.security.InvalidKeyException: Illegal key size or default parameter -
zouzaibianyuan:
...
Listener Servlet
本人学习ext已有一段时间,将我的学习项目贴出来供大家参考
主程序参考ext官方网站的ext的window范例
main.jsp
windows.js
familyMember.js
incomeDaily.js
dwrproxy.js
主程序参考ext官方网站的ext的window范例
main.jsp
<%@ page contentType="text/html; charset=utf-8"%> <%@ page import="org.acegisecurity.context.SecurityContext, org.acegisecurity.userdetails.UserDetails" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>House Charge Expenses System</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta http-equiv="content-language" content="utf-8" /> <meta content="all" name="robots" /> <meta name="author" content="ark"/> <meta name="copyright" content="ark" /> <meta name="description" content="just for testing" /> <meta name="keywords" content="family,finance,study" /> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/ajaxlib/ext/resources/css/ext-all.css" /> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/ajaxlib/mylib/ext-patch.css" /> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath() %>/css/windows.css" /> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/ext/ext-all-debug.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/ext/ext-lang-zh_CN.js"></script> <!--buffalo--> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/buffalo/prototype.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/buffalo/buffalo.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/mylib/buffaloext.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/mylib/dwrproxy.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/mylib/ext-lang-zh.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/dwr/interface/houseChargeService.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/dwr/engine.js"></script> <script language="javascript"> dwr.engine.setAsync(false);//同步 var ContextPath="<%=request.getContextPath() %>" var END_POINT="<%=request.getContextPath() %>/bfapp"; var buffalo = new Buffalo(END_POINT,false); </script> <script type="text/javascript" src="<%=request.getContextPath() %>/ajaxlib/mylib/buffaloext.js"></script> <script type="text/javascript" src="desktop.js"></script> <script type="text/javascript" src="windows.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/steady/chargeItem.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/steady/incomeItem.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/steady/familyMember.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/steady/bankAccount.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/daily/incomeDaily.js"></script> </head> <body> <div id="x-taskbar"> <div id="title-bar">House Charge Expenses System</div> <div id="logname">用户名:<strong class="username"> <% SecurityContext context=(SecurityContext)request.getSession().getAttribute("ACEGI_SECURITY_CONTEXT"); UserDetails userDetails=(UserDetails)context.getAuthentication().getPrincipal(); out.print(userDetails.getUsername()); %> </strong> | <a href="<%=request.getContextPath() %>/logout.html">登出</a> </div> <div id="x-launcher-wrap"><div id="x-launcher-inner"><div id="x-launcher-left"><div id="x-launcher-right"><div id="x-launcher-center"><div id="x-launcher"></div><div id="x-info"><ext:user-name /></div></div></div></div></div></div> </div> <div id="x-desktop"> </div> <div id="x-windows"> <div id="x-winlist"><div id="spacer"></div></div> <div class="x-clear"></div> </div> </body> </html>
windows.js
Myapp = new Ext.app.App({ init :function(){ Ext.QuickTips.init(); }, getModules : function(){ return [ new chargeItemWindow(), new incomeItemWindow(), new familyMemberWindow(), new bankAccountWindow(), new incomeDailyWindow(), ]; } });
familyMember.js
familyMemberWindow = Ext.extend(Ext.app.Module, { init : function(){ this.launcher = { text: '家庭成员', iconCls:'icon-grid', handler : this.createWindow, scope: this } }, createWindow : function(){ var desktop = this.app.getDesktop(); var cm = new Ext.grid.ColumnModel([{ header: '姓名', dataIndex: 'name', width: 220, editor: new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank: false})) }]); // by default columns are sortable cm.defaultSortable = true; var FamilyMember = Ext.data.Record.create([ {name:'id',type:'int',mapping:'id'}, {name: 'name',type:'string',mapping: 'name'} ]); var ds = new Ext.data.Store({ proxy: new Buffalo.Ext.DataProxy(buffalo,"houseChargeService.getAllFamilyMember",[]), reader: new Ext.data.ArrayReader({id: 'id'}, FamilyMember), // turn off remote sorting remoteSort: false }); var gridPanel = new Ext.grid.EditorGridPanel({ store: ds, cm: cm, selModel: new Ext.grid.CellSelectionModel(), enableColLock:false, buttonAlign:'top', tbar:[{ text: '新增', handler :doAdd },{ text: '保存', handler : doSave },{ text: '删除', handler : doDel }] }); var win = desktop.getWindow('familyMember-win'); if(!win){ win = desktop.createWindow({ id: 'familyMember-win', title:'家庭成员', width:740, height:460, x:10, y:10, iconCls: 'icon-grid', shim:false, animCollapse:false, constrainHeader:true, layout: 'fit', items: gridPanel }); } ds.load(); win.show(); function doAdd() { var p = new FamilyMember({ id:-1, name:'' }); gridPanel.stopEditing(); var yetCount=ds.getCount(); ds.insert(yetCount, p); //标示cell已修改过 ds.getAt(yetCount).set("name",'未命名'); gridPanel.startEditing(yetCount, 0); } function doSave() { var eds=ds.getModifiedRecords().slice(0); for(var i = 0;i<eds.length;i++){ record =eds[i]; if (record.get("id")==-1) { buffalo.remoteCall("houseChargeService.createFamilyMember",[record.get("name")],function(reply) { var sucess = reply.getResult(); if (sucess==1) { alert("重复姓名!"); } else { if (sucess!=0) { alert("保存失败!"); } else { record.commit(); } } }); } else { buffalo.remoteCall("houseChargeService.updateFamilyMember",[record.get("id"),record.get("name")],function(reply) { var sucess = reply.getResult(); if (sucess==1) { alert("重复姓名!"); } else { if (sucess!=0) { alert("保存失败!"); } else { record.commit(); } } }); } } } function doDel(){ if(gridPanel.selModel.hasSelection()){ Ext.MessageBox.confirm('Message', '确定删除吗?', doDelDetail); } else { Ext.MessageBox.alert('Error', '请选中一行!'); } } function doDelDetail(btn) { if (btn == 'yes') { var record = ds.getAt(gridPanel.selModel.getSelectedCell()[0]); if (record.get("id")==-1) { ds.remove(record); } else { buffalo.remoteCall("houseChargeService.deleteFamilyMember",[record.get("id")],function(reply) { var sucess = reply.getResult(); if (sucess!=0) { alert(" 删除失败!"); } else { ds.remove(record); } }); } } } } });
incomeDaily.js
incomeDailyWindow = Ext.extend(Ext.app.Module, { init : function(){ this.launcher = { text: '收入日记录', iconCls:'icon-grid', handler : this.createWindow, scope: this } }, createWindow : function(){ var desktop = this.app.getDesktop(); Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var cm = new Ext.grid.ColumnModel([ { header: "收入项目", sortable: true, dataIndex: 'incomeItem_name', width: 100 },{ header: "日期", dataIndex: 'date', width:60, renderer:Ext.util.Format.dateRenderer('Y/m/d') },{ header: "金额", dataIndex: 'amount', align: 'right', width: 100 },{ header: "家庭成员", dataIndex: 'familyMember_name', width: 80 },{ header: "银行", dataIndex: 'bankAccount_bank', width: 120 },{ header: "帐号", dataIndex: 'bankAccount_accountNo', width: 120 },{ header:"备注", dataIndex: 'remark', width: 80 }]); // by default columns are sortable cm.defaultSortable = true; var IncomeDaily = Ext.data.Record.create([ {name:'id',type:'int',mapping:'id'}, {name: 'incomeItem_name', type: 'string',mapping:'incomeItem.name'}, {name: 'date', type: 'date',dateFormat: 'Y/m/d',mapping:'date'}, {name: 'amount', type: 'float',mapping:'amount'}, {name: 'familyMember_name', type: 'string',mapping:'familyMember.name'}, {name: 'bankAccount_bank', type: 'string',mapping:'bankAccount.bank'}, {name: 'bankAccount_accountNo', type: 'string',mapping:'bankAccount.accountNo'}, {name: 'remark', type: 'string',mapping:'remark'} ]); var ds = new Ext.data.Store({ proxy: new Ext.data.DWRProxy(houseChargeService.findIncomeDaily), reader: new Ext.data.JsonReader({totalProperty:'total',root:'list',id:'id'},IncomeDaily), remoteSort: false, }); var gridPanel = new Ext.grid.EditorGridPanel({ ds:ds, cm: cm, sm: new Ext.grid.RowSelectionModel({singleSelect:true}), enableColLock:false, autoSizeColumns: true, buttonAlign:'top', tbar:[{ text: '新增', handler :doAdd },{ text: '查询', handler : doQuery },{ text: '删除', handler : doDel }], bbar:new Ext.PagingToolbar({ pageSize: 2, store: ds, displayInfo: true }) }); var win = desktop.getWindow('incomeDaily-win'); if(!win){ win = desktop.createWindow({ id: 'incomeDaily-win', title:'收入日记录', width:740, height:460, x:10, y:10, iconCls: 'icon-grid', shim:false, animCollapse:false, constrainHeader:true, layout: 'fit', items: gridPanel }); } win.show(); function doAdd() { var allIncomeItem=[]; buffalo.remoteCall("houseChargeService.findRootIncomeItem",[], function(reply) { getChild(reply.getResult()); function getChild(parent) { if (parent.children.lengt==0) { return 0; } for(var i=0; i<parent.children.length; i++) { allIncomeItem.push([parent.children[i].id,parent.children[i].name]); getChild(parent.children[i]); } } }); var allFamilyMember=[]; buffalo.remoteCall("houseChargeService.getAllFamilyMember",[],function(reply) { var list = reply.getResult(); for(var i=0; i<list.length; i++) { allFamilyMember.push([list[i].id,list[i].name]); } }); var allBankAccount=[]; buffalo.remoteCall("houseChargeService.getAllBankAccount",[],function(reply) { var list = reply.getResult(); for(var i=0; i<list.length; i++) { if (list[i].bank=="现金") { allBankAccount.push([list[i].id,list[i].bank]); } else { allBankAccount.push([list[i].id,list[i].bank+" "+list[i].accountNo+" "+list[i].cardNo]); } } }); var addForm = new Ext.FormPanel({ onSubmit: Ext.emptyFn, submit: function() { this.getEl().dom.submit(); }, labelWidth: 75, // label settings here cascade unless overridden frame:true, title: '', //bodyStyle:'padding:5px 5px 0', ark bodyStyle:'padding: 0', width: 350, labelSeparator:'', items: [{ xtype:'combo', fieldLabel: '家庭成员', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allFamilyMember }), editable: false, hiddenName:'familyMember_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择家庭成员', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'datefield', fieldLabel: '日期', name: 'date', width: 100, allowBlank: false, format:'Y/m/d' }, { xtype:'numberfield', fieldLabel: '金额', name: 'amount', width: 100, allowBlank: false, allowNegative: false, minValue: 0 },{ xtype:'combo', fieldLabel: '账户', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allBankAccount }), editable: false, hiddenName:'bankAccount_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择账户', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'combo', fieldLabel: '收入项目', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allIncomeItem }), editable: false, hiddenName:'incomeItem_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择收入项目', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'textfield', fieldLabel: '备注', name: 'remark', width:300 } ], buttons: [{ text: '保存', handler:function(){ if(addForm.form.isValid()){ var my=addForm.form.getValues(); buffalo.remoteCall("houseChargeService.createIncomeDaily",[parseInt(my.incomeItem_id),Date.parseDate(my.date, "Y/m/d"),parseFloat(my.amount),parseInt(my.familyMember_id),parseInt(my.bankAccount_id),my.remark],function(reply) { var sucess = reply.getResult(); if (sucess!=0) { alert("保存失败!"); } else { alert("保存成功!"); } }); addWindow.close(); } } },{ text: '放弃', handler: function(){ addWindow.close(); } }] }); var addWindow if(!addWindow){ addWindow = new Ext.Window({ id: 'incomeDaily-add-win', layout:'fit', width:500, height:300, plain: true, items:addForm }); } addWindow.show(this); addForm.form.setValues({date:(new Date()).format("Y/m/d"),familyMember_id:'1',bankAccount_id:'1',incomeItem_id:'2'}); addForm.form.render(); } function doQuery() { var allIncomeItem=[]; buffalo.remoteCall("houseChargeService.findRootIncomeItem",[], function(reply) { getChild(reply.getResult()); function getChild(parent) { if (parent.children.lengt==0) { return 0; } for(var i=0; i<parent.children.length; i++) { allIncomeItem.push([parent.children[i].id,parent.children[i].name]); getChild(parent.children[i]); } } }); //alert(allIncomeItem); var allFamilyMember=[]; buffalo.remoteCall("houseChargeService.getAllFamilyMember",[],function(reply) { var list = reply.getResult(); for(var i=0; i<list.length; i++) { allFamilyMember.push([list[i].id,list[i].name]); } }); var allBankAccount=[]; buffalo.remoteCall("houseChargeService.getAllBankAccount",[],function(reply) { var list = reply.getResult(); for(var i=0; i<list.length; i++) { if (list[i].bank=="现金") { allBankAccount.push([list[i].id,list[i].bank]); } else { allBankAccount.push([list[i].id,list[i].bank+" "+list[i].accountNo+list[i].cardNo]); } } }); var queryForm = new Ext.FormPanel({ onSubmit: Ext.emptyFn, submit: function() { this.getEl().dom.submit(); }, labelWidth: 75, // label settings here cascade unless overridden frame:true, title: '', //bodyStyle:'padding:5px 5px 0', ark bodyStyle:'padding: 0', width: 350, labelSeparator:'', items: [{ xtype:'fieldset', checkboxName:'queryFamilyMember_id', checkboxToggle:true, title: '按家庭成员查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'combo', fieldLabel: '家庭成员', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allFamilyMember }), editable: false, hiddenName:'familyMember_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择家庭成员', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true }] },{ xtype:'fieldset', checkboxToggle:true, checkboxName:'queryDate', title: '按日期查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'datefield', fieldLabel: '日期起', name: 'dateFrom', width: 100, allowBlank: false, format:'Y/m/d' },{ xtype:'datefield', fieldLabel: '日期迄', name: 'dateTo', width: 100, allowBlank: false, format:'Y/m/d' }] },{ xtype:'fieldset', checkboxToggle:true, checkboxName:'queryAmount', title: '按金额查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'combo', fieldLabel: '运算符', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: [['<','小于'],['<=','小于等于'],['==','等于'],['>','大于'],['>=','大于等于']] }), editable: false, hiddenName:'cmp_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择运算符', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true },{ xtype:'numberfield', fieldLabel: '金额', name: 'amount', width: 100, allowBlank: false, allowNegative: false, minValue: 0 }] },{ xtype:'fieldset', checkboxToggle:true, checkboxName:'queryBankAccount_id', title: '按账户查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'combo', fieldLabel: '账户', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allBankAccount }), editable: false, hiddenName:'bankAccount_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择账户', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true }] },{ xtype:'fieldset', checkboxToggle:true, checkboxName:'queryIncomeItem_id', title: '按收入项目查询', autoHeight:true, defaults: {width: 210}, collapsed: true, items :[{ xtype:'combo', fieldLabel: '收入项目', store: new Ext.data.SimpleStore({ fields: ["id","name"], data: allIncomeItem }), editable: false, hiddenName:'incomeItem_id', displayField:'name', valueField:'id', typeAhead: true, mode: 'local', triggerAction: 'all', emptyText:'请选择收入项目', selectOnFocus:true, resizable:true, allowBlank:false, forceSelection:true }] } ], buttons: [{ text: '查询', handler:function(){ if(queryForm.form.isValid()){ var my=queryForm.form.getValues(); ds.proxy.dwrParams=[my.queryFamilyMember_id=='on'?true:false,parseInt(my.familyMember_id),my.queryDate=='on'?true:false,Date.parseDate(my.dateFrom, "Y/m/d"),Date.parseDate(my.dateTo, "Y/m/d"),my.queryAmount=='on'?true:false,my.cmp_id,parseFloat(my.amount),my.queryBankAccount_id=='on'?true:false,parseInt(my.bankAccount_id),my.queryIncomeItem_id=='on'?true:false,parseInt(my.incomeItem_id)]; ds.load({params:{start:0,limit:2}}); queryWindow.close(); } } },{ text: '退出', handler: function(){ queryWindow.close(); } }] }); var queryWindow if(!queryWindow){ queryWindow = new Ext.Window({ id: 'incomeDaily-query-win', layout:'fit', width:500, height:300, maximizable:true, plain: true, items:queryForm }); } queryWindow.show(this); queryForm.form.setValues({incomeItem_id:'2',dateFrom:(new Date(2007,1,1)).format("Y/m/d"),dateTo:(new Date()).format("Y/m/d"),familyMember_id:'1',bankAccount_id:'1',cmp_id:'>',amount:100,}); queryForm.form.render(); } function doDel(){ if(gridPanel.selModel.hasSelection()){ Ext.MessageBox.confirm('Message', '确定删除吗?' , doDelDetail); } else { Ext.MessageBox.alert('Error', '请选中一行'); } } function doDelDetail(btn) { if (btn == 'yes') { var record =gridPanel.selModel.getSelected(); if (record.get("id")==-1) { ds.remove(record); } else { buffalo.remoteCall("houseChargeService.deleteIncomeDaily",[record.get("id")],function(reply) { var sucess = reply.getResult(); if (sucess!=0) { alert("删除失败!"); } else { ds.remove(record); } }); } } } } });
dwrproxy.js
Ext.data.DWRProxy = function(dwrCall,dwrParams){ Ext.data.DWRProxy.superclass.constructor.call(this); this.dwrCall = dwrCall; this.dwrParams=dwrParams||[]; }; Ext.extend(Ext.data.DWRProxy, Ext.data.DataProxy, { load : function(params, reader, callback, scope, arg) { var self = this; if(this.fireEvent("beforeload", this, params) !== false) { var delegate = this.loadResponse.createDelegate(this, [reader, callback, scope, arg], 1); arg.params=arg.params||{}; var allParams=[arg.params.start||0,arg.params.limit||2].concat(this.dwrParams); allParams.push(delegate); this.dwrCall.apply(this,allParams); } else { callback.call(scope || this, null, arg, false); } }, loadResponse : function(listRange, reader, callback, scope, arg) { var result; try { result = reader.readRecords(listRange); } catch(e) { this.fireEvent("loadexception", this, null,listRange, e); callback.call(scope, null, arg, false); return; } callback.call(scope, result, arg, true); } });
评论
24 楼
struas
2008-10-24
你真强,我也正在搞这个
23 楼
douko
2008-03-27
楼主不在????????????
22 楼
douko
2008-03-26
请问楼主,我把程序放在jb2006里面运行,发现少了很多包
能不能把你得饱都贴上了?
能不能把你得饱都贴上了?
21 楼
ht8206
2007-12-24
楼主,把打一个war包让小弟们看看,小弟水平太次,没运行起来。或者发个邮件把:ht8206@163.com
20 楼
zlsunnan
2007-12-20
感谢分享 值得学习
19 楼
rain16881
2007-12-19
Ext.data.DWRProxy = function(dwrCall,dwrParams){
Ext.data.DWRProxy.superclass.constructor.call(this);
this.dwrCall = dwrCall;
this.dwrParams=dwrParams||[];
};
Ext.extend(Ext.data.DWRProxy, Ext.data.DataProxy, {
load : function(params, reader, callback, scope, arg) {
var self = this;
if(this.fireEvent("beforeload", this, params) !== false) {
var delegate = this.loadResponse.createDelegate(this, [reader, callback, scope, arg], 1);
arg.params=arg.params||{};
var allParams=[arg.params.start||0,arg.params.limit||2].concat(this.dwrParams);
allParams.push(delegate);
this.dwrCall.apply(this,allParams);
} else {
callback.call(scope || this, null, arg, false);
}
},
loadResponse : function(listRange, reader, callback, scope, arg) {
var result;
try {
result = reader.readRecords(listRange);
alert(result.total);//显示出来看一看 } catch(e) {
this.fireEvent("loadexception", this, null,listRange, e);
callback.call(scope, null, arg, false);
return;
}
callback.call(scope, result, arg, true);
}
});
加粗的地方也没有反应..一直是Loading..
Ext.data.DWRProxy.superclass.constructor.call(this);
this.dwrCall = dwrCall;
this.dwrParams=dwrParams||[];
};
Ext.extend(Ext.data.DWRProxy, Ext.data.DataProxy, {
load : function(params, reader, callback, scope, arg) {
var self = this;
if(this.fireEvent("beforeload", this, params) !== false) {
var delegate = this.loadResponse.createDelegate(this, [reader, callback, scope, arg], 1);
arg.params=arg.params||{};
var allParams=[arg.params.start||0,arg.params.limit||2].concat(this.dwrParams);
allParams.push(delegate);
this.dwrCall.apply(this,allParams);
} else {
callback.call(scope || this, null, arg, false);
}
},
loadResponse : function(listRange, reader, callback, scope, arg) {
var result;
try {
result = reader.readRecords(listRange);
alert(result.total);//显示出来看一看 } catch(e) {
this.fireEvent("loadexception", this, null,listRange, e);
callback.call(scope, null, arg, false);
return;
}
callback.call(scope, result, arg, true);
}
});
加粗的地方也没有反应..一直是Loading..
18 楼
rain16881
2007-12-19
//#DWR-INSERT
//#DWR-REPLY
var s0=[];var s1={};var s3={};var s2={};var s4={};s0[0]=s1;s0[1]=s2;
s1.classInfo="fds";s1.className="05ACCP3";s1.id="402881f016528bf30116528c93f90002";s1.userCollege=s3
;
s3.collegeInfo="\u6539\u4E0B\u4E5F";s3.collegeName="\u8BA1\u7B97\u673A\u5DE5\u7A0B\u5B66\u9662";s3.id
="402881f01652384d0116523abe250003";
s2.classInfo="fsd";s2.className="fds";s2.id="402881f016c6d7070116c702e4640002";s2.userCollege=s4;
s4.collegeInfo="\u5916\u56FD\u5B66\u9662";s4.collegeName="\u5916\u56FD\u8BED\u5B66\u9662";s4.id="402881f0167b0c7501167b45d3de000a"
;
dwr.engine._remoteHandleCallback('0','0',{list:s0,total:2});
这个是fbug中的请求返回的数据
var Userclass = Ext.data.Record.create([
{name: "id", mapping: "id", type: "string"},
{name: "className", mapping: "className", type: "string"},
{name: "classInfo", mapping: "classInfo", type: "string"},
{name: "userCollege_id", mapping: "userCollege.id", type: "string"},
{name: "userCollege_collegeName", mapping: "userCollege.collegeName", type: "string"},
{name: "userCollege_collegeInfo", mapping: "userCollege.collegeInfo", type: "string"},
]);
var ds = new Ext.data.Store({
proxy : new Ext.data.DWRProxy(classAction.findAllClass_Ajax),
reader: new Ext.data.JsonReader({totalProperty:'total',root:'list',id:'id'},Userclass),
remoteSort: false,
});
var colModel = new Ext.grid.ColumnModel(
[
new Ext.grid.RowNumberer(),
{header: "班级序号", width: 250, sortable: true, dataIndex: 'id'},
{header: "班级名字", width: 250, sortable: true, dataIndex: 'className'},
{header: "班级信息", width: 250, sortable: true, dataIndex: 'classInfo'},
{header: "学院序号", width: 250, sortable: true, dataIndex: 'userCollege_id'},
{header: "学院名字", width: 250, sortable: true, dataIndex: 'userCollege_collegeName'},
{header: "学院信息", width: 250, sortable: true, dataIndex: 'userCollege_collegeInfo'},
]
);
colModel.defaultSortable=true;
var ClassManageEditorGridPanel = new Ext.grid.EditorGridPanel({
store: ds,
cm: colModel,
//selModel: new Ext.grid.RowSelectionModel(),
sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
loadMask :true,
autoSizeColumns: true,
enableColLock:false,
buttonAlign:'top',
tbar:
[{
text: '新增',
handler :doAdd
},{
text: '删除',
handler : doDel
},collegesortComboBox
]
});
if(!win){
win = desktop.createWindow({
id: 'grid-win-classmanage',
title:'班级管理',
width:740,
height:480,
iconCls: 'icon-grid',
shim:false,
animCollapse:false,
constrainHeader:true,
layout: 'fit',
items:
ClassManageEditorGridPanel
});
}
ds.load();
win.show();
请问..为什么数据可以得到了..但是还不能在grid中有数据..
grid一直都是Loading.....
是reader的问题吗?
谢谢了..请指教
//#DWR-REPLY
var s0=[];var s1={};var s3={};var s2={};var s4={};s0[0]=s1;s0[1]=s2;
s1.classInfo="fds";s1.className="05ACCP3";s1.id="402881f016528bf30116528c93f90002";s1.userCollege=s3
;
s3.collegeInfo="\u6539\u4E0B\u4E5F";s3.collegeName="\u8BA1\u7B97\u673A\u5DE5\u7A0B\u5B66\u9662";s3.id
="402881f01652384d0116523abe250003";
s2.classInfo="fsd";s2.className="fds";s2.id="402881f016c6d7070116c702e4640002";s2.userCollege=s4;
s4.collegeInfo="\u5916\u56FD\u5B66\u9662";s4.collegeName="\u5916\u56FD\u8BED\u5B66\u9662";s4.id="402881f0167b0c7501167b45d3de000a"
;
dwr.engine._remoteHandleCallback('0','0',{list:s0,total:2});
这个是fbug中的请求返回的数据
var Userclass = Ext.data.Record.create([
{name: "id", mapping: "id", type: "string"},
{name: "className", mapping: "className", type: "string"},
{name: "classInfo", mapping: "classInfo", type: "string"},
{name: "userCollege_id", mapping: "userCollege.id", type: "string"},
{name: "userCollege_collegeName", mapping: "userCollege.collegeName", type: "string"},
{name: "userCollege_collegeInfo", mapping: "userCollege.collegeInfo", type: "string"},
]);
var ds = new Ext.data.Store({
proxy : new Ext.data.DWRProxy(classAction.findAllClass_Ajax),
reader: new Ext.data.JsonReader({totalProperty:'total',root:'list',id:'id'},Userclass),
remoteSort: false,
});
var colModel = new Ext.grid.ColumnModel(
[
new Ext.grid.RowNumberer(),
{header: "班级序号", width: 250, sortable: true, dataIndex: 'id'},
{header: "班级名字", width: 250, sortable: true, dataIndex: 'className'},
{header: "班级信息", width: 250, sortable: true, dataIndex: 'classInfo'},
{header: "学院序号", width: 250, sortable: true, dataIndex: 'userCollege_id'},
{header: "学院名字", width: 250, sortable: true, dataIndex: 'userCollege_collegeName'},
{header: "学院信息", width: 250, sortable: true, dataIndex: 'userCollege_collegeInfo'},
]
);
colModel.defaultSortable=true;
var ClassManageEditorGridPanel = new Ext.grid.EditorGridPanel({
store: ds,
cm: colModel,
//selModel: new Ext.grid.RowSelectionModel(),
sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
loadMask :true,
autoSizeColumns: true,
enableColLock:false,
buttonAlign:'top',
tbar:
[{
text: '新增',
handler :doAdd
},{
text: '删除',
handler : doDel
},collegesortComboBox
]
});
if(!win){
win = desktop.createWindow({
id: 'grid-win-classmanage',
title:'班级管理',
width:740,
height:480,
iconCls: 'icon-grid',
shim:false,
animCollapse:false,
constrainHeader:true,
layout: 'fit',
items:
ClassManageEditorGridPanel
});
}
ds.load();
win.show();
请问..为什么数据可以得到了..但是还不能在grid中有数据..
grid一直都是Loading.....
是reader的问题吗?
谢谢了..请指教
17 楼
ksgimi
2007-12-17
to:
thomasg:抱歉!我未在ie下测试。
to:
laiseeme:我用eclipse3.2 +jetty 指定context为web context就可以
http://jettylauncher.sourceforge.net/updates/
to:rain16881
关键是record定义var IncomeDaily = Ext.data.Record.create(...
]);
var ds = new Ext.data.Store({
proxy: new Ext.data.DWRProxy(houseChargeService.findIncomeDaily),
reader: new Ext.data.JsonReader({totalProperty:'total',root:'list',id:'id'},IncomeDaily),
remoteSort: false,
});
指定jsonReader为reader, 返回查询总数在total栏位 明细数据在list
你可以显示出来看一看或用firebug返回数据与record定义是否一致。
dwrproxy中加入alert
loadResponse : function(listRange, reader, callback, scope, arg) {
var result;
try {
result = reader.readRecords(listRange);
alert(result.total);//显示出来看一看
} catch(e) {
this.fireEvent("loadexception", this, null,listRange, e);
callback.call(scope, null, arg, false);
return;
}
callback.call(scope, result, arg, true);
}
thomasg:抱歉!我未在ie下测试。
to:
laiseeme:我用eclipse3.2 +jetty 指定context为web context就可以
http://jettylauncher.sourceforge.net/updates/
to:rain16881
关键是record定义var IncomeDaily = Ext.data.Record.create(...
]);
var ds = new Ext.data.Store({
proxy: new Ext.data.DWRProxy(houseChargeService.findIncomeDaily),
reader: new Ext.data.JsonReader({totalProperty:'total',root:'list',id:'id'},IncomeDaily),
remoteSort: false,
});
指定jsonReader为reader, 返回查询总数在total栏位 明细数据在list
你可以显示出来看一看或用firebug返回数据与record定义是否一致。
dwrproxy中加入alert
loadResponse : function(listRange, reader, callback, scope, arg) {
var result;
try {
result = reader.readRecords(listRange);
alert(result.total);//显示出来看一看
} catch(e) {
this.fireEvent("loadexception", this, null,listRange, e);
callback.call(scope, null, arg, false);
return;
}
callback.call(scope, result, arg, true);
}
16 楼
rain16881
2007-12-16
楼主..有空可以讲一下那个dwrproxy吗?
我怎么不能读出数据..那些字段要和那里对映啊?和mapping
那对映?
如果有空..就你的例子说一下好吗?
我怎么不能读出数据..那些字段要和那里对映啊?和mapping
那对映?
如果有空..就你的例子说一下好吗?
15 楼
thomasg
2007-12-14
在IE6下有脚本错误,菜单无法显示.错误信息是: 'bandAccountWindow'未定义.
在Firefox下可以.
在Firefox下可以.
14 楼
laiseeme
2007-12-14
看晕了,一下子用的东西太多了吧,麻烦把项目重新整理了一下,可能我是初学者,弄了半天没有运行起来
13 楼
ericsheng
2007-12-07
能不能提供怎么样开发和部署。期待中...
12 楼
ststst
2007-12-05
too good
11 楼
philip_kissme
2007-12-04
fa个war包上来 你发的项目 ant脚本是错的
10 楼
nitc_007
2007-12-03
非常感谢楼主!
9 楼
huahui
2007-12-03
LZ 把源码打包共享! 谢谢LZ
8 楼
ksgimi
2007-12-03
buffaloext.js
还需那个文件说一下。我将全部代码用zip打包,供参考。
测试时,用户:parent 密码:parent
// For Buffalo-EXT integration // Buffalo.Ext = {}; //Usage: new Buffalo.Ext.DataProxy(buffalo, "myService.method", [param1, param2]) Buffalo.Ext.DataProxy = function(buffalo, service, params) { Buffalo.Ext.DataProxy.superclass.constructor.call(this); this.buffalo = buffalo; this.service = service; this.params = params; } Ext.extend(Buffalo.Ext.DataProxy, Ext.data.DataProxy, { load : function(params, reader, callback, scope, arg){ var self = this; if (this.fireEvent("beforeload", this, params) != false) { this.buffalo.remoteCall(this.service, this.params, function(reply) { if (reply.isFault()) { // This should be processed in buffalo events... // alert(reply.getSource()); return; } // let the reader to read the returned object. var result = reader.readRecords(reply.getResult()); self.fireEvent("load", this, null, arg); callback.call(scope, result, arg, true); }); } else { callback.call(scope || this, "", arg, false); } } });
还需那个文件说一下。我将全部代码用zip打包,供参考。
测试时,用户:parent 密码:parent
7 楼
rain16881
2007-12-02
var ds = new Ext.data.Store({
proxy: new Buffalo.Ext.DataProxy(buffalo,"houseChargeService.getAllFamilyMember",[]),
reader: new Ext.data.ArrayReader({id: 'id'}, FamilyMember),
// turn off remote sorting
remoteSort: false
});
Buffalo.Ext.DataProxy这个东东是那个js的啊?
楼主有好多js没出来..可以发全一点吗?
proxy: new Buffalo.Ext.DataProxy(buffalo,"houseChargeService.getAllFamilyMember",[]),
reader: new Ext.data.ArrayReader({id: 'id'}, FamilyMember),
// turn off remote sorting
remoteSort: false
});
Buffalo.Ext.DataProxy这个东东是那个js的啊?
楼主有好多js没出来..可以发全一点吗?
6 楼
heartbeatboy
2007-11-28
上传一下代码,谢谢!
5 楼
yaofei
2007-11-26
楼主打包一下,方便大家下载啊
相关推荐
Ext slider扩展以级范例代码----下载不扣分,回帖加1分,欢迎下载,童叟无欺Ext slider扩展以级范例代码----下载不扣分,回帖加1分,欢迎下载,童叟无欺Ext slider扩展以级范例代码----下载不扣分,回帖加1分,欢迎...
EXT4.2 MVC范例代码主要展示了如何在编程中应用EXT4.2框架与MVC(Model-View-Controller)设计模式相结合的方式进行项目开发。EXT4.2是一款流行的JavaScript库,专门用于构建富客户端应用程序,它提供了丰富的UI组件...
ExtJS 是一个强大的JavaScript库,专门用于构建富客户端应用程序,尤其在企业级Web应用中广泛应用。这个压缩包文件包含的示例和资源主要展示了如何利用ExtJS实现数据操作(增删改查)以及树形视图(TreePanel)的...
标题 "GWT+EXT+STRUTS2+Eclipse完整范例.rar" 提示我们这是一个包含一个集成开发环境Eclipse的项目,该项目集成了Google Web Toolkit (GWT), EXT JS 和Struts2框架。描述 "整合 GWT EXT STRUTS2 Eclipse 范例" 明确...
3.1. 真的,我是为了树,才开始学ext的。 3.2. 传统是先做出一棵树来。 3.3. 超越一个根 3.4. 你不会认为2.0里跟1.x是一样的吧? 3.5. 这种装配树节点的形式,真是让人头大。 3.6. jsp的例子是一定要有的 3.7. 让你...
文档中提到的范例会展示如何使用Ext JS 4的不同特性,比如数据模型(Models)、视图(View)、控制器(Controller)等,以及如何将它们集成到一个可运行的应用程序中。 3. **Ext JS 4组件(Components)** Ext JS ...
### Ext2.0框架的Grid使用介绍 #### 一、Ext2.0框架概述 Ext2.0是一款基于JavaScript的库,它提供了丰富的用户界面组件和API,使得开发者能够快速地构建出高度交互性的Web应用。与其他框架如YUI相比,Ext2.0拥有...
龙博Ext Gantt甘特图最新2.07破解+中文包 ext-gantt\gnt-all-debug.js ext-gantt\sch-lang-zh_CN.js ext-min\ext-lang-zh_CN.js http://www.longboo.com/ http://bryntum.com/
**基于Struts的Ext增删改查应用范例详解** 在Web开发中,Struts框架与ExtJS库的结合常用于构建高效的用户界面和后台数据交互。本应用范例是针对初学者的一个宝贵资源,它提供了清晰的注释和全面的功能,使开发者...
3.1. 真的,我是为了树,才开始学ext的。 3.2. 传统是先做出一棵树来。 3.3. 超越一个根 3.4. 对tree进行统一配置 3.5. 这种装配树节点的形式,真是让人头大。 3.5.1. TreeLoader外传 之 JsonPlugin 3.5.2. ...
7. **范例和教程**:通常,中文版文档还会包含丰富的示例代码和教程,帮助初学者快速上手,理解如何实际应用这些概念和技术。 8. **国际化支持**:对于多语言应用,ExtJS提供了内置的国际化支持,使得应用能够轻松...
Ext 2 中文文档 在众多的AJAX框架中,考察一个框架是否优秀,除了强调框架的功能、性能外,掌握难度和相关的文档、范例也是参考要数。ExtJS便是这样一个不错的选择。当感觉到ExtJS的强大的同时,也发现这个框架国内...
这样的组合既提高了用户体验,又降低了服务器负载,是现代Web应用开发的一个典型范例。通过学习和理解这个示例,开发者可以深化对这些技术的理解,并将其运用到自己的项目中,提升开发效率和应用性能。
Oryx 加上 Ext 修改范例,实现在oryx上添加tab窗体
ext框架本人自学笔记,使用频率很高的ext框架技术源代码,可以直接COPY粘贴到自己程序中,稍微改动一下就可以使用
在MFC中,我们可以使用`AFX_EXT_CLASS`宏来声明导出的MFC类,这样就可以在DLL中定义和实现类,然后在主应用程序中实例化和使用。同时,MFC还提供了`AfxBeginThread`函数,用于在DLL中创建线程,以及`...
Struts是Java Web开发中的一款经典MVC框架,它的全称是Apache Struts,由Apache软件基金会维护。这个框架主要用于构建基于J2EE的Web应用程序,提供了一种组织应用程序结构和控制应用程序流程的方式。...
ext 的入门级别的范例
ExtJS实例 一个非常不错的学习Ext的源码
最后,"S7_sample_project_ext_Busposi_6PDs"可能涉及外部总线定位,用于六个电机的控制。这个范例可能会深入讲解如何在更大的系统中实现复杂的定位控制,可能包括更高级的通讯协议,如PROFIBUS或PROFINET,以及如何...