《如何提高码农产量基于ASPNET.docx》由会员分享,可在线阅读,更多相关《如何提高码农产量基于ASPNET.docx(5页珍藏版)》请在第一文库网上搜索。
1、如何提高码农产量,基于ASPNETMVC的敏捷开发框架之自定义表单开发厂长,上一次我们讲过了工作流的整体规划,今天我要动手做啦!我想先把工作流的自定义表单做出来。“好的,以前我做这方面的东西,我给你设计了一份表结构,你先拿去看看。表单模板表表单里堂IdVarChar(501表单编号varchar(50)表单名称varchar(200)表单分类varchar(50)数至表varchar(50)美联表的主援varchar(50)是否需要建表。不建表,1建表int表单内容text排序码int删除标记int有效int备注varchar(200)创蠢时间datetime创建用户主援varchar(50)
2、创建用户varchar(50)修改时间datetime修改用户主键varchar(50)修改用户varchar(50)FrmMainId厂长,是不是没有发完,怎么就一个表?我就知道你会这么问,我现在给你解释一下重点字段的含义。数据表:将表单上的内容保存到那个表。关联表的主键:要保存表单数据张表的主键。是否需要建表:是否要把表单中的数据存入到表中,这里的意思是,是将表单上面的栏位与数据表的字段-对应还是直接将整个表单的内容打包一块。这里呢就看用户的需要啦,如果需要作统计汇总之类的数据分析,就按字段保存好了,如果不是就可以不用为表单上面每一个栏位都对应数据字段,这样操作起来也简单。表单内容:注意啦
3、!就是这里,其实我是想把表单上所有的内容以json形式全部保存到一个字段里这样后台不用再单独去建一张表来保存这些东西,前台统一去解析就好了。明白了,这样做确实好,可以少用到多表。好的,闲话少说,我给你看第一个界面,我们在做界面布局的时候要考虑用户操作便捷性所以可以做成向导式中。厂长,这里点一下一步就是跳到一个新的页面吗?当然不是,其实是多个DIV之间的切换。来我给你看看代码。别个这个页面看起来很复杂的样子,其实就是几个div+js实现的。先看htm11基本KH2表里设计(spanc1ass-*chevr0nsaCIaSSSPd创建Nstep-contentwizard-step-content
4、-idMwizard-steps*设计完成,请点击保存(P上一步2T保存草稿保存再来看一下JSi加较导向2 5(,twizard,).wizard().on(change,function(e4data)3 vanJfinish-SCwbtn.finish);4 varSnext-$(TrbtnJeXt);5 if(data.directionwet*)6 switch(data.step)7 case1:8 returnbinding8ase();9 break)Iecase2:绑定表里11 if(!bindigFr()12 returnfa1se;W)14 Sfinish.removeAt
5、tr(disab1ed,);15 Snext.attr(disab1ed,disab1ed,);16 S(,wbtncaogao,)attr(d1sab1ed,disab1edt);17 break;18 defau1t:19 break;2121 e1se(22 Sfin1sh.attr(,disab1ed1disab1ed);23 Snext.reoveAttr(disab1ed*);24 $(tbtnacaogao).removeAttr(disab1ed*);25 26 1);哇,真的呢,这种效果好,果然是可以跳来跳去的,那你现在讲一下这个拖拽的表单是怎么实现的吧。恩,你看看,这个东西
6、的原理其实就是拼接htm1,左边放工具栏,工具栏上选择不同的工具其实就是不同类型的控件,右边设置控件的属性。中间显示效果。567891111617181922122232425262728293313233functionSetFnn1nfo(data)(van_heightS(window).height()-8741?41:S(window).height()-87;postData.FreContentdata.FrmContent;if(data.isSyStemTab1e=-w)frapp$(friesign*).frDesign(Height:.height,frmContet:p
7、ostDat.FrmCotent);)e1se(varHidatabase;for(variinfrmdatabase)if(frdatabasei.co1umn!postData.FrmTab1eId)(frmdatabse.push(frmdtabasei);)frapp.$(fredesignt).frmDesign(Height:_height,Iab1efi1edJsonOata:Edatabase,IsSystemTab1e:postData.IsSystemTab1e,frmCotent:postDataFrContent);functionbindingFra()varfrco
8、tent1sfrapp.getData();if(Ifmicotent1s)returnfa1se;DOStData.FreContenteJSOW.strinifv(frmcotent1s:34returntrue;35136丧站隹择(end)-”3739functionfinishbtn()4postDataMEnab1edMarkM-1;41S.SaveFor(42ur1:././F1owManageForDesIgn/SaveFore?keyVa1ue-keyVa1ue,43paran:postData,441oading:”正在保存数据.,45success:function()46
9、S.current1fraeeO.SCtgridTab1eJ.triggerCre1oadGrid*);47)48)491后台代码:3456e111213141516171819221222324252627/铢存用户表率期报、熊改)/f(/用户实体Por(M9/HttpPostJVa1idateAntiForgeryTokenAjaxOn1ypub1icActionResu1tSaveFor(stringkeyVa1uejWFFrmMainEntityUserEntity)wfFrnRainB11.SaveForn(keyVa1ue,userEntity);returnSUCCeSSe操作ft);)/保存我军/parmnweendty”)专更博技奖妙淑3rw)/Sf/pub1icIntSaveFor(str1ngkeyva1ue,WFFrmHainEntityentity)try(if(String.IsNu1IOrEmpty(keyVa1ue)etity.Create();this.BaseRepository().Isert(etity);)e1se(entity.Modify(keyVa1ue);this.BaseRepositoryO.update(entity);)return1;)Catch(Exception)(throw;)就这么简单,一个功能就完成了。