“尼玛哥,你今天有空么?”

“今天周日呀,怎么会没空,你这是要约么?麻辣烫凉皮我都吃,在哪儿,我一会儿就到。”

“约你妹呀,我昨天都加一天班了,东西到现在还没搞完,你给我快点过来呀,我需要你!”

“别急噢,有哥在,这都不叫事儿。”

二十分钟后...

“小美,什么问题搞不定?”

“尼玛哥,MVC这个破东西,一点都不好用,以前我做毕业设计用WebForm里面拖服务器控件可方便了。我这两天在做一个订单管理,以前用服务器控件,拖完控件以后这样写”

private void save()
{string orderNo=txt_OrderNo.Text.Trim();
string orderDate=txt_OrderDate.text.trim();
... ...
SqlHelper.Execute("Insert Into Order...
... ...}

“表头数据提交这样写,订单明细更好弄了,直接拖个GridView出来数据就可以绑定上去了。你看界面我昨天上午就弄好了,数据按你以前说的,组成Json走Ajax提交到后台这一个个拼,到后台再一个个解,再插数据库要把我搞疯了,表头的还好,明细的会把我搞疯掉!!你看这是我仿其它界面拖出来的界面”

“不错,不错界面现在画得很不错了,JQgrid用得也很像那么回事。你提交数据的代码是怎么写的?”

“诺,你看”

    //保存事件function SubmitOrderForm() {
function (r) {if (r) {Loading(true, "正在提交数据...");window.setTimeout(function () {var postData = “{["OrderNo:”+$(txt_OrderNo).val()+ ... ...//明细表格里的都不知道怎么写了!!!!!AjaxJson("/ExampleModule/Order/SubmitOrderForm?KeyValue=" + KeyValue, postData, function (data) {tipDialog(data.Message, 3, data.Code);ThisCloseTab();});}, 200);}});}

“看起来倒是像这么回事的,订单明细表格里的一样把值取出来拼Json呀怎么不会了?”

“表格里面我也不知道用户填了多少行数据,知道的话我还可以写个for循环。”

“小美,我看你事业线纵深也不怎么样呀,你这脑子怎么还是这么笨呢!你看表格一共有多少行你这样循环去取,不就好了吗?”

“可是你没看到这上面不是有空行么!”

“都说女人胸大无脑,我觉得你现在肯定还是没发育,以后肯定比柳岩身材好。有空行,遇到空行你跳出循环不就好了!你这代码这样写也太乱了,就算写完了也容易出异常,我给你个取页面数据的函数,你自己拿去套着用”

/*
自动获取页面控件值
*/
function GetWebControls(element) {var reVal = "";$(element).find('input,select,textarea').each(function (r) {var id = $(this).attr('id');var value = $(this).val();var type = $(this).attr('type');switch (type) {case "checkbox":if ($(this).attr("checked")) {reVal += '"' + id + '"' + ':' + '"1",'} else {reVal += '"' + id + '"' + ':' + '"0",'}break;default:if (value == "") {value = " ";}reVal += '"' + id + '"' + ':' + '"' + $.trim(value) + '",'break;}});reVal = reVal.substr(0, reVal.length - 1);return jQuery.parseJSON('{' + reVal + '}');
}

“尼玛哥,真看不出来呀,别看你人不怎么样,写出来的代码还真灵活,就这几句话,我刚套到代码里Alert一下,把界面上的控件和值全拼成了Json,我只要在后台把控件名改成字段名,就可以直接调后台方法把Json转成实体,直接插数据库啦。”

“小美,你真是得了柳岩的病没有柳岩的命呀!你怎么这么蠢呢,前台代码也是你写的,你界面上的控件名跟字段名一致,不就不用转了么,Json提交后台,转实体插数据库一气呵成,直接可以封闭成公用方法了。”

“有些代码我是用代码生成器生成的呀!”

“你就不会改下代码生成器么!把生成前台界面上的txt_、select_。。。这些该死的东西拿掉不就好了,不管加控件减控件套这代码的话,一个代码都不用改呀!”

“恩,也是噢,我先写写看。”

一小时后... ...

“尼玛哥,好了,那代码真好用我直接封闭到函数库去了,提交后台就一句话。”

“就这么点东西,你还折腾了一小时,你也是个人才。”

“切,我把明细提交,表单提交一起写完了,以前是我JS用得不熟,其实JS也跟C#一样,也可以遍历也一样可以对控件赋值取值,一样有对象的概念。我刚刚把明细转成Json后,后台就转List了,批量插入,带事务也方便。页面编辑其实就是取值相反的操作,那就是从后台取到值,实体转成Json,再把你方法这么一改,就好了”

/*
自动给控件赋值
*/
function SetWebControls(data) {for (var key in data) {var id = $('#' + key);var value = $.trim(data[key]).replace(" ", "");var type = id.attr('type');switch (type) {case "checkbox":if (value == 1) {id.attr("checked", 'checked');} else {id.removeAttr("checked");}$('input').customInput();break;default:id.val(value);break;}}
}

“把这两个函数封装一下,前台页面要加载数据或者保存数据,一句话就能搞定呀,尼玛哥!这次代码是我写好的,要不要给网友们发一份呀”

“别,你那代码是直接用到项目里的,项目里面有些公司Logo链接什么的,容易让别人误会是搞推广。”

“恩,好的,晚点我有时间的时候,把公司、项目信息全去掉,再来上传源码。”

转载于:https://www.cnblogs.com/liuleama/p/4162678.html

我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交相关推荐

  1. 我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交

    另外献上在<线体验Demo地址>希望大家也能从中得到一些启示. 地址:http://121.40.148.178:8080/ . username:guest,password:12345 ...

  2. 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)...

    众所周知程序员得靠技术吃饭,但是真的光靠技术就够了吗?Teacher苍,一位德艺双馨的艺术家,论技术她自然是炉火纯青,我觉得她桃李遍天下的原因不仅限于些,试想如果Teacher苍长得跟凤姐一样再带点乡 ...

  3. 5自适应单页源码_超详细!如何建立一个CPA单页网站,附高转化CPA模板源码

    做CPA的老手一般都会建立一个CPA单页站,用来提升转化,提高推广质量. 今天教大家搭建一个完整的CPA单页站 搭建一个网站需要3样东西: 域名 服务器 网站源码 一.购买域名 域名 就是你网站的地址 ...

  4. python自制简易二维码代码_用python把自己的二维码制作成动态码,一行代码即可搞定!敲简单!...

    分享一个比较有意思的项目,只需要一行Python代码就可以快捷方便生成普通二维码.艺术二维码(黑白/彩色)和动态GIF二维码. 用法比较简单,直接通过pip安装即可. pip3 install myq ...

  5. Android 扫描、生成、识别二维码、条码 一库搞定

    他来了,他来了,他带着YXing走来了. YXing 集成了CameraX + zxing, 简洁调用,功能完善,自定义扫码界面,再也不用像以前一样cv一堆冗余的Camera代码进项目了. 怎么集成: ...

  6. 互联网亿级日志实时分析平台,一个码农半小时就可以搞定,只因ELK

    一,前言 人们常常说数据如金,可是,能被利用起的数据,才是"金".而互联网的数据,常常以日志的媒介的形式存在,并需要从中提取其中的"数据". 从这些数据中,我们 ...

  7. 即时低码数据库Web应用-ASP.NET Core 3.1单页应用(SPA)

    目录 介绍 网格记录在编辑/添加上的持久性 用于创建单页应用程序(SPA)的步骤 在SQL Server Management Studio中创建数据库 打开Visual Studio Communi ...

  8. 两张图搞定IJK源码

    IJK源码两张图就可以搞定,一张是IJK从播放到停止的代码流程图,一张是IJK的线程模型图

  9. Android开发中dip,dpi,density,px等详解

    Android开发中的各种单位的解释 Px (Pixel像素) 也称为图像元素,是作为图像构成的基本单元,单个像素的大小并不固定,跟随屏幕大小和像素数量的关系变化(屏幕越大,像素越低,单个像素越大,反 ...

最新文章

  1. ync 小技巧-14-为用户启用统一的联系人存储库-Lync-无联系人
  2. 计算机视觉与深度学习 | 基于DNN神经网络实现人的年龄及性别预测(代码类)
  3. laravel+vue开发环境搭建
  4. mysql 主主忽略错误_MySQL 主主报错: Fatal error: The slave I/O thread stops because master and slave have...
  5. 【离散数学】二元关系的性质
  6. 【Java从0到架构师】SpringMVC - 异常处理_拦截器
  7. sqlserverv中处理字符串包含、截取
  8. 如何:删除Word 2010中的“向下箭头”
  9. CentOS 7.4 安装Nginx
  10. 如何用AutoRunner录制IE脚本录制
  11. 三星6818核心板接口众多兼容三星4418开发板
  12. Codeforces Global Round 15 ABCD
  13. 教程篇 | 史上最简单也最全新手Revit教程
  14. 飞凌嵌入式基于i.MX6UL平台实现无线地磁车辆检测网关
  15. C#深度优先遍历实现全排列
  16. MogDB/openGauss 教程 浓缩版
  17. 使用AutoJs实现微信抢红包
  18. 阐述大数据,云计算,物联网三者的区别
  19. 可能的面试问题及答案
  20. Kotlin中的空判断

热门文章

  1. python线程挂起唤醒暂停按键_time.sleep在python中挂起多线程函数
  2. JAVA毕业设计Web精品课程网站设计与实现计算机源码+lw文档+系统+调试部署+数据库
  3. 你所谓的稳定,不过是在浪费生命
  4. 吃自己的狗食——eat your own dog food
  5. Flutter Text 参数详解
  6. 01-系统安装-acer台式机使用固态盘重装系统后无法进入BOOT
  7. linux data access monitor(DAMON)
  8. Unity发布Web之支持手机端
  9. @Data的注解以及相关的注解
  10. 【每日医信资讯】2022年11月03日-综合医讯一览