另外献上在《线体验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

最新文章

  1. 用友ERP-U8最新破解(再次更新版本,附安装过程中的解决办法)
  2. Python/dotNET Redis服务连接客户端调用SET方法的同时获取Redis服务器返回的内容
  3. Oracle警告、跟踪文件(10046、死锁等跟踪)
  4. Programming Assignment 2: Randomized Queues and Deques
  5. [系统开发] Bind DNS 管理系统
  6. [JWFD开源工作流]JWFD开源工作流官方下载内容更新
  7. JNI层问题
  8. linux操作系下RAR的使用
  9. 异常IllegalStateException终于解决了
  10. PHP移动互联网开发笔记(2)——变量及常量
  11. 2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题
  12. Oracle中的instr()函数
  13. sessionStorage 前端HTML5会话管理
  14. NodeMan介绍
  15. Python中的序列操作
  16. MYSQL动态查询拼接的表名的SQL脚本实现(MYSQL动态执行SQL脚本)
  17. [django]前后端分离之JWT用户认证
  18. 2018.06.29 NOIP模拟 繁星(前缀和)
  19. Android -- 文件扫描
  20. CMS 收集器整理

热门文章

  1. AIX用户管理
  2. (原创)优酷androidclient 下载中 bug 解决
  3. Vertica数据库操作
  4. Direct UI 思想阐述(好多相关文章)
  5. 结构体的序列和还原(使用Move方法)
  6. zabbix 监控jvm
  7. Attach()函数和Detach()函数的作用
  8. 理想非常丰满,现实非常骨感——致WiFi通话
  9. MySQL中同一时候存在创建和上次更新时间戳字段解决方法浅析
  10. 14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering