- 浏览: 53013 次
- 性别:
- 来自: 潘多拉星球
文章分类
最新评论
-
a1034919908:
哥们你棒棒的,我试了下,很管用
detached entity passed to persist异常解决 -
weituotian:
查看id生成策略,然后呢?
detached entity passed to persist异常解决
从建基础数据(包含维护),到创建模板,再到最后的引用花费了5天的时间。如果不是机器太破,3天的时间足够了。可惜,创建出来的模板不具备可编辑性。毕竟也是一番汗水,一份经验,就保存留个纪念(仅模板使用展现)。
ChooseBdgModeWin=function(config){ var flagCode = null;//模板code修改时使用 var pbCode = null; //概算ID,不为空时表示修改概算 var pbName = new Ext.form.TextField({fieldLabel:'名称',name:'pbName',allowBlank:false,value:config.proName+'概算'}); var pbDocument = new Ext.form.TextField({fieldLabel:'文件号',name:'pbDocument',allowBlank:false}); var pbRemark = new Ext.form.TextArea({xtype:'textarea',fieldLabel:'备注',name:'pbRemark',height:300}); var bgPanel=new Ext.form.FormPanel({ width:780,labelWidth:45,labelAlign:"right", layout : "form",frame:true,defaults:{anchor:'98%',xtype:'textfield'}, items:[pbName,pbDocument,pbRemark] }); var templetStore = new Ext.data.Store({ reader: new Ext.data.JsonReader({root:'root',totalProperty:'totalProperty'},[{name:'btCode',mapping:'btCode'},{name:'btName',mapping:'btName'}]), proxy: new Ext.data.HttpProxy({url:contextPath+'/project/xmgs.ext?pmethod=getTemplet'}) }) var templetCombo = new Ext.form.ComboBox({anchor:'95%',labelAlign:"right",fieldLabel:"选择模板",name:'btName',mode:"remote",triggerAction:"all", displayField:"btName",valueField:'btCode',emptyText : "----------------------------------------------选择模板----------------------------------------------", editable:false,store :templetStore,allowBlank:false, listeners:{'select':showTemplet} }); //展现选择的模板 function showTemplet(templet){ flagCode = null; var code = templet.value; Ext.Ajax.request({ url:contextPath+'/project/xmgs.ext', method:'post', params:{pmethod:'showTempletConstructor',btCode:code}, success:function(response,action){ var records = Ext.decode(response.responseText); templetInfo(records); } }); } var maps = {}; function templetInfo(records){ maps = {}; bdgetRecords = records; alert(Ext.encode(records)); var html = '<div align="center"><table width="500" border="1" cellpadding="0" cellspacing="0">' +'<tr><td width="50" height="50" align = "center" colspan="2">序号</td><td align = "center" width="300">项目费用名称</td><td>投资金额(单位:元)</td></tr>'; var tempId = Ext.id();//概算总金额 var tempField = new Ext.form.NumberField({readOnly : true,style:' background:#f0f0f0' }); maps[tempId] = {field:tempField,recordID:'root'}; html += '<tr><td width="50" height="35" align = "center" colspan="2"> </td><td align = "center" width="300">概算总金额</td><td id="' + tempId + '"></td></tr>'; var tempFlag = '0'; var tempParent = 0,tempChild = 0,flag=0;//依次代表:父项、子项和序列排号 var curentParent = null; for(var i = 0; i < records.length; i++){ flag++; var record = records[i]; tempFlag = record.parent; if(record.parent == '0'){ var id = Ext.id(); var field = new Ext.form.NumberField({readOnly : true,style:' background:#f0f0f0' }); currentParent = id; maps[id] = {field: field, parentId : null,recordID:record.id}; tempChild = 0; html += '<tr><td width="50" height="35">'+(++tempParent)+'</td><td width="50"> </td><td align = "center" width="300">'+record.text+'</td><td id="' + id + '"></td></tr>'; }else if(tempFlag != '0' && record.parent == tempFlag){ var id = Ext.id(); var field = new Ext.form.NumberField({parentId : currentParent}); field.on('change', function(f) { var pid = f.initialConfig.parentId; var pField = maps[pid].field; var totalCount = 0.0; if(tempField.getValue() != "") { totalCount = tempField.getValue() - pField.getValue(); } var count = 0.0; for(var n in maps) { if(maps[n].parentId == pid) { if(maps[n].field.getValue() != "") { count += maps[n].field.getValue(); } } } pField.setValue(count); tempField.setValue(count+totalCount); }); maps[id] = {field: field, parentId : currentParent,recordID:record.id}; html += '<tr><td width="50" height="35"> </td><td width="50">'+(++tempChild)+'</td><td width="300">'+record.text+'</td><td id="' + id + '"></td></tr>'; } } saveBudgetIndex = flag; html += '</table><br></div>'; var flagPanel = templetPanel.findByType('panel')[0]; templetPanel.remove(flagPanel); var tempPanel = new Ext.Panel({layout:'form',autoScroll:true,labelWidth:65, html:html}) templetPanel.add(tempPanel); templetPanel.doLayout(); for(var n in maps) { maps[n].field.render(n); } } var chooseTempletCmbP = new Ext.Panel({ region:'north',pading:'5px 5px 5px 5px',height:30,anchor:'95%', frame:true,layout:'form',labelWidth:65, items:[templetCombo] }); var templetPanel = new Ext.Panel({ region:'north',pading:'5px 5px 5px 5px',height:30,anchor:'95%', frame:true,layout:'form',labelWidth:65,autoScroll:true, items:[templetCombo] }); function saveFn(){ var bgInfo = convertRecordsToJson(ds_privilege); Ext.Ajax.request({ url:contextPath+'/project/xmgs.ext', params:{pmethod:'addItems',bgInfo:bgInfo,parentID:parentID+','+config.ipId}, method:'post', success:function(response,options){ treeReLoad(); } }); } var lastStepBtn = new Ext.Button({text:'上一步',iconCls:'x-button-prior',handler:lastStepFn,hidden:true}); var nextStepBtn = new Ext.Button({text:'下一步',iconCls:'x-button-go',handler:nextStepFn}); var clsBtn = new Ext.Button({text:'关闭',iconCls:'x-button-cancel',handler:clsFn,scope:this}); var saveBtn = new Ext.Button({text:'保存',iconCls:'x-button-save',handler:saveBuggetFn,scope:this,hidden:true}); var bgPanel=new Ext.Panel({ layout : "card", activeItem :0,autoScroll:true, tbar:[nextStepBtn,lastStepBtn,clsBtn,saveBtn], items:[bgPanel,templetPanel] }); //上一步 function lastStepFn(){ bgPanel.getLayout().setActiveItem(0); nextStepBtn.show();clsBtn.show(); lastStepBtn.hide();saveBtn.hide(); } //下一步 function nextStepFn(){ if(!pbName.isValid()){ Ext.Msg.alert("系统提示","请先填写概算名称,再做操作!"); return; }; if(!pbDocument.isValid()){ Ext.Msg.alert("系统提示","请先填写文件号,再做操作!"); return; } bgPanel.getLayout().setActiveItem(1); nextStepBtn.hide();clsBtn.hide(); lastStepBtn.show();saveBtn.show(); if(pbCode != null) budgetInfo(); } function valueToHtml(value){ var records = Ext.decode(value); for(var i =0; i < records.length;i++){ var record = records[i]; for(var n in maps) { var m = maps[n]; if(m.recordID == record.btiCode){ v = m.field.setValue(record.invest); break; } } } }; //修改概算时,显示概算信息 function budgetInfo(){ Ext.Ajax.request({ url:contextPath+'/project/xmgs.ext', params:{pmethod:'getProBgsInfo',pbCode:pbCode}, method:'post', success:function(response,options){ var ob = Ext.decode(response.responseText); templetCombo.setValue(ob.btName); flagCode = ob.btCode; var records = Ext.decode(ob.templetInfo); templetInfo(records); if(ob.budInfo !='')valueToHtml(ob.budInfo); }, failure:function(response,options){ var ob = Ext.decode(response.responseText); Ext.Msg.alert("系统提示",ob.btName); } }); } //保存概算 function saveBuggetFn(){ if(!templetCombo.isValid()){ Ext.Msg.alert("系统提示","请先选择模板,再做保存!"); return; } var sbBdValue = []; for(var i = 0;i<bdgetRecords.length;i++){ var record = bdgetRecords[i]; var v = null; for(var n in maps){ var m = maps[n]; //if(m.recordID == 'root') alert(m.field.getValue()); if(m.recordID == record.id){ v = m.field.getValue(); break; } } var a = {btiCode: record.id , pbiName : record.text , pbiParentcode : record.parent, pbiLevel : record.level, pbiInvestsum : v}; sbBdValue[sbBdValue.length] = a; } var btCode = (flagCode==null? templetCombo.getValue():flagCode) Ext.Ajax.request({ url:contextPath+'/project/xmgs.ext', params:{pmethod:'addProBgs',ipId:config.proCode,pbName:pbName.getValue(),btCode:btCode, pbCode:pbCode,pbDocument:pbDocument.getValue(),pbRemark:pbRemark.getValue(), addItems:Ext.encode(sbBdValue)}, method:'post', scope:this, success:function(response,options){ var ob = Ext.decode(response.responseText); Ext.Msg.alert('系统提示',ob.message); if(ob.success){ bdgetRecords = null; Ext.getCmp(config.gridID).RefreshGrid(); this.close(); } }, failure:function(response,options){ var ob = Ext.decode(response.responseText); Ext.Msg.alert("系统提示",ob.message); } }); } //关闭窗口 function clsFn(){ this.close(); } //对文本域赋值 this.setInfo = function setInfo(values){ pbName.setValue(values.pbName); pbDocument.setValue(values.pbDocument); pbRemark.setValue(values.pbRemark); } //为概算ID赋值 this.setPbCode = function(value){pbCode = value;} ChooseBdgModeWin.superclass.constructor.call(this,{frame:true,autoScroll:true,height:450,width:640,layout:'fit',items: [bgPanel]}); }; Ext.extend(ChooseBdgModeWin,Ext.Window);
发表评论
-
keyup、keydown事件
2010-09-08 15:21 1415ext使用textfield时如果需要监听keyup或key ... -
tree和editorgrid联合使用
2010-07-01 16:59 1021懒的写注释了,暂时把这里当做是我的文档保存。这是一个t ... -
ext combox 下拉树
2010-06-22 11:03 2297一个下拉树的简单实现,ext2.2 var comboxWi ... -
editegrid提交修改后的数据
2010-06-10 15:54 1250一段应用别人的提交editgird(ext)修改后数据的 ... -
ext隐藏field好方法
2010-05-28 12:14 1541使用ext在使用hide()隐藏field时,会发现 ... -
ext组件化编程(grid与form数据交互)
2010-05-24 18:16 2119好久没用ext了,工作中要用到,想想这次用组件化编程方 ...
相关推荐
Ext4 动态加载js例子 Ext4 动态加载js例子 Ext4 动态加载js例子 Ext4 动态加载js例子
使用 json 动态加载 Ext 表单数据。
ext4.0动态加载,使用json数据源,整个项目只有一个页面,js按照mvc模式搭建
Ext的gridpanel控件二次加载时丢失解决方案
Ext 3.3.1 动态加载树结构 - 数据库部分...是【Ext 3.3.1 动态加载树结构(请在我的个人资源中找)】中的一部分,请下载的朋友看好了,可别下了用不成. 祝你(们)好运 需要改端口号的 去Test工程中去改 我用的端口是 3360
ext树 无限级 json 数据格式 动态加载
ext 主界面模板ext 主界面模板 ext 主界面模板 ext 主界面模板
Ext 3.3.1 动态加载树结构(Myeclipse 6.0.1) : 由于上传的文件不能大于15M ,和网速的限制,所以我把该资源分成了 3 部分 : 1.不包含jar包的java程序 1.66 MB ; 2.我把该java程序所包含的jar包分成了3部分保存...
通过DWR动态加载Ext.tree.TreePanel。
本人觉得Ext.Template和Ext.XTemplate模板类非常类似.Net的母板页,或者非常类似于JSP技术中jstl标准标签和EL表达式功能;但是它是一个客户端的技术。 阅读目标:需要使用模板方式来开发web应用的人员。 前置条件:...
EXT 可编辑 表格的例子 EXT 可编辑 表格的例子
Ext.ux.tree.treegrid异步加载,点击节点加载数据
Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载Ext-tree加载
ext来处理树的问题简单而且节省时间效率,是个好办法,这里的源码,仅供参考。
用ext + xml文件 完成 ext tree panel 树结构。延迟加载,支持 多选 单选。前后台数据交互使用的是 json串,挺不错的
EXT JS动态加载机制的研究与实现
Ext4.1 demo布局加左侧菜单动态加载 demo
Jar包-3 只是【Ext 3.3.1 动态加载树结构(请在我的资源中找)】其中的一部分 请下载的朋友看好了哦。 祝你(们)好运 ! 下载下来后 ,将文件夹中的jar包拷贝到 Test\WebRoot\WEB-INF\lib 目录下即可.
用EXT做的生成树的例子
涵盖了ext特有功能的所有模板,同时包含源代码,只要简单修改,一个ext构成的前台就出现了。下载你不会后悔的。