我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交
另外献上在《线体验Demo地址》希望大家也能从中得到一些启示。
地址:http://121.40.148.178:8080/ 、 username:guest,password:123456
QQ技术交流群:239168429
“尼玛哥,你今天有空么?”
“今天周日呀,怎么会没空,你这是要约么?麻辣烫凉皮我都吃,在哪儿,我一会儿就到。”
“约你妹呀,我昨天都加一天班了,东西到如今还没搞完,你给我快点过来呀,我须要你!”
“别急噢,有哥在,这都不叫事儿。”
二十分钟后...
“小美,什么问题搞不定?”
“尼玛哥,MVC这个破东西,一点都不好用,曾经我做毕业设计用WebForm里面拖server控件可方便了。我这两天在做一个订单管理,曾经用server控件,拖完控件以后这样写”
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循环。”
“小美,我看你事业线纵深也不怎么样呀,你这脑子怎么还是这么笨呢!你看表格一共同拥有多少行你这样循环去取,不就好了吗?”
“但是你没看到这上面不是有空行么!”
“都说女人胸大无脑,我认为你如今肯定还是没发育,以后肯定比柳岩身材好。有空行,遇到空行你跳出循环不就好了!你这代码这样写也太乱了,就算写完了也easy出异常,我给你个取页面数据的函数,你自己拿去套着用”
/*
自己主动获取页面控件值
*/
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链接什么的,easy让别人误会是搞推广。”
“恩,好的,晚点我有时间的时候,把公司、项目信息全去掉,再来上传源代码。”
另外献上在《线体验Demo地址》希望大家也能从中得到一些启示。
地址:http://121.40.148.178:8080/ 、 username:guest,password:123456
QQ技术交流群:239168429
我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交的更多相关文章
- 我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交
“尼玛哥,你今天有空么?” “今天周日呀,怎么会没空,你这是要约么?麻辣烫凉皮我都吃,在哪儿,我一会儿就到.” “约你妹呀,我昨天都加一天班了,东西到现在还没搞完,你给我快点过来呀,我需要你!” “别 ...
- 我和小美的撸码日记--基于MVC+Jqgrid的.Net快速开发框架
前言:以前的帐号没有发首页的权限,特此把这篇文章从另外一个博客移过来,这篇是<我和小美的撸码日记>的序 一转眼务农6年了,呆过大公司也去过小作坊,码农的人生除了抠腚还是抠腚.在所有呆过的公 ...
- 我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面
一.前言 “尼玛哥,上周你教我改了下OA系统UI,黄总看了很满意呀.” “不错不错,看来小美进步很大,可以提前结束试用期,到时候加工资别忘了请我吃饭呀!” “尼玛哥,你有女朋友了吗?” “ ...
- 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)
众所周知程序员得靠技术吃饭,但是真的光靠技术就够了吗?Teacher苍,一位德艺双馨的艺术家,论技术她自然是炉火纯青,我觉得她桃李遍天下的原因不仅限于些,试想如果Teacher苍长得跟凤姐一样再带点乡 ...
- spa(单页应用)中,使用history模式时,微信长按识别二维码在ios下失效的问题
spa(单页应用,vue)中,使用history模式时,微信长按识别二维码在ios下失效的问题. 触发条件: spa单页应用: 路由模式 history 从其他页面跳转到带有微信二维码识别的页面(不是 ...
- 用HTTP状态码实现提交表单后刷新页面不重复提交
正常情况下,表单提交后如果用户刷新页面会重复提交表单,有些情况下我们不希望表单重复提交,利用HTTP协议中的307状态码重定向页面可以实现这个目的.实例如下: 表单页面代码: <form act ...
- 推荐几个IDEA插件,Java开发者撸码利器(转载)
推荐几个IDEA插件,Java开发者撸码利器. 这里只是推荐一下好用的插件,具体的使用方法不一一详细介绍. JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用 ...
- Intellij IDEA 撸码最头大的问题。。
想栈长我当初从 Eclipse 转用 IDEA 真是纠结,放弃然后尝试了N次,不过现在已经算是转型成功了,可以完全脱离 Eclipse 撸码了,虽然说我现在真的撸得非常少了.. 说到 IDEA 的痛点 ...
- 响应国家号召,在家撸码之React迁移记
最近这段时间新型冠状病毒肆虐,上海确诊人数每天都在增加,人人提心吊胆,街上都没人了.为了响应国家号召,近期呆在家里撸码,着手将项目迁移到React中,项目比较朴素,是一张线索提交页面,包含表单.图片滚 ...
随机推荐
- uvc摄像头代码解析7
13.uvc视频初始化 13.1 uvc数据流控制 struct uvc_streaming_control { __u16 bmHint; __u8 bFormatIndex; //视频格式索引 _ ...
- MSSQL - 自增1的标识列一次增长了1000
@情若天_RunUp: 1. Open "SQL Server Configuration Manager"2. Click "SQL Server Services&q ...
- Opencv2系列学习笔记8(图像滤波)
一:概念: 滤波是信号处理机图像处理中的一个基本操作.滤波去除图像中的噪声,提取感兴趣的特征,允许图像重采样. 图像中的频域和空域:空间域指用图像的灰度值来描述一幅图像:而频域指用图像灰度值的变化来描 ...
- java实现点卡生成
点卡主要有2部分:卡号和密码.卡号一般由数字组成,密码就不多说了. java中随机数很强大,大家可以自己查.卡号生成使用java中随机数,密码使用uuid,密码可以自己再加点东西之类的.下面是完整代码 ...
- mmtests使用简介
1.简介 mmtests是一个可配置的测试套件,可以被MM开发者用来进行一个常规测试.理想情况下,它可以与LTP,xfstests等测试工具结合起来实现自动化测试. 2.软件组织 run-mmtest ...
- spring mvc 接受多对象的处置
spring mvc 接受多对象的处理 spring mvc感觉非常好用,尤其是对接收对象參数的自己主动绑定非常简便,但对于同一时候传多个对象时有些困扰. 同一时候项目并没有直接使用spring的fo ...
- jquery实现鼠标焦点十字效果
系统开发时很多地方需要有焦点效果,例如:鼠标点击聚焦,地图定位,在图片上突出显示,焦点定位页面元素. 本小功能通过jquery和graphics二次开发,实现通过鼠标点击页面任何区域,聚焦当前点击位置 ...
- 让VC2012生成的程序支持XP系统(QT的DLL都是支持XP的,只与EXE有关)
如果用的编译器是VC2012以上,那么默认生成出的程序是不能运行在XP系统上的.所以需要修改链接参数 我们要做的是修改qmake.conf文件中的参数,文件路径根据开发环境不同而不同下面以5.1.1 ...
- linux下远程管理利器-tmux
linux下远程管理利器-tmux 1.控制键 控制键就是tmux的主键.当你在tmux环境下按下这个键的时候,tmux就会把你后面输入的指令,解析成它内置的功能.tmux默认的控制键是 ...
- 基于FPGA的红外遥控解码与PC串口通信
基于FPGA的红外遥控解码与PC串口通信 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<电子设计EDA>的课程设计作业(呵呵,这个月都拿 ...