json的操作应用实例
来源:互联网 发布:天猫淘宝客服后台操作 编辑:程序博客网 时间:2024/04/28 04:43
在自己做的商品收银页面中<本系统采用了EasyUI作为前端开发框架,后台则是C#写的webservice>,反思这个页面的做法,觉得有必要做个笔记。
先来个系统截图:
简短的说明一下开单消费的业务流程:
1.页面加载成功后,出现左下角的datagrid,显示商品信息。
2.选择商品,可以多次多选,点击选中按钮,后台webservice返回的json数据加载显示在上面的datagrid里,(为了便于区分,这个取名datagrid1,左下角的那个取名datagrid2);
3.在datagrid1里可以对json数据修改,删除。
4.可以继续点击选中按钮添加商品。
这个json数据量不大,就放在了内存中处理。将json设立全局变量,每次点击选中按钮,即往json里添加后台新返回的数据,在datagrid1里进行修改,删除。
废话少说,直接上代码:
添加操作
var rtnjson = null;
function Selected(ids){ $.ajax( { url : 'http://localhost:6080/webservice/WebProduct.asmx/Product_grid?jsoncallback=?', data : { Method : 'Selected', ids : ids, CustomerNo : me3.edit_form3.find('#CustomerNo')[0].value }, success : function (returnData) { if (returnData) { if (rtnjson == null) { rtnjson = returnData; } else { $.each(returnData.rows, function (i, item) { rtnjson.rows.push(returnData.rows[i]); } ); rtnjson.total = rtnjson.total + returnData.total; } if (rtnjson != null) { me1.datagrid1.datagrid('loadData', rtnjson); //将数据绑定到datagrid me1.datagrid1.datagrid('reloadFooter', [ { FIT_NAME : '合计', AMOUNT : sum(), GetherMoney : sum1(), Onsale : sum2() } ]); } } } } );}这个函数是选中按钮点击事件的处理逻辑,用到了jQuery的工具函数$.each(),将返回的json数据一一加入到rtnjson里。
给一个json数据的例子.
{ "total" : 1, "rows" : [ { "AMOUNT" : "134", "BUSI_MAN" : "业务员001", "BalanceType" : "会员卡", "COUNTS" : "1", "DEPT_SHOT" : "", "FIT_NAME" : "A43", "FIT_NUM" : "1043", "GetherMoney" : "120.6", "INFO_MAN" : "操作员001", "Onsale" : "13.4", "PRICE" : "134.00", "Reduce" : "6.7", "TRANS_ID" : "" } ]}json格式里的total是easyui datagrid要求的数据格式。
修改操作
点击datagrid1里面修改按钮(选中至少一行),
修改按钮的点击事件的操作逻辑:
///修改function Update1(){ var selectedRows = me1.datagrid1.datagrid('getSelections'); if (selectedRows.length > 0) { me1.edit_form1.form('load', selectedRows[0]); me1.edit_window1.find('div[region="south"]').css('display', 'block'); me1.edit_window1.window('open'); } else { showError('请选择一条记录进行操作!'); return; }}
点击保存:
///保存修改function modifySelected(){ var gdrows = me1.datagrid1.datagrid('getSelections'); for (var i = 0; i < gdrows.length; i++) { var ind = $('#datagrid1').datagrid('getRowIndex', gdrows[i]); rtnjson.rows[ind].FIT_NAME = me1.edit_form1.find('#FIT_NAME1')[0].value; rtnjson.rows[ind].COUNTS = me1.edit_form1.find('#COUNTS1')[0].value; rtnjson.rows[ind].PRICE = me1.edit_form1.find('#PRICE1')[0].value; rtnjson.rows[ind].AMOUNT = me1.edit_form1.find('#AMOUNT1')[0].value; rtnjson.rows[ind].Reduce = me1.edit_form1.find('#Reduce1')[0].value; rtnjson.rows[ind].Onsale = me1.edit_form1.find('#Onsale1')[0].value; rtnjson.rows[ind].GetherMoney = me1.edit_form1.find('#GetherMoney1')[0].value; //rtnjson.rows[ind].BalanceType = $('#BalanceType').combotree('getText'); rtnjson.rows[ind].BUSI_MAN = me1.edit_form1.find('#BUSI_MAN1')[0].value; rtnjson.rows[ind].INFO_MAN = me1.edit_form1.find('#INFO_MAN1')[0].value; } me1.edit_window1.window('close'); me1.datagrid1.datagrid('loadData', rtnjson); me1.datagrid1.datagrid('reloadFooter', [ { FIT_NAME : '合计', AMOUNT : sum(), GetherMoney : sum1(), Onsale : sum2() } ]);}将修改选中行的json数据。
删除操作
删除按钮点击事件的处理逻辑
///删除操作function deleteSelected(){ var gdrows = me1.datagrid1.datagrid('getSelections'); if (gdrows.length == 0) { showError('请选择记录进行操作!'); } else { for (var i = 0; i < gdrows.length; i++) { var ind = $('#datagrid1').datagrid('getRowIndex', gdrows[i]); //$('#datagrid1').datagrid('deleteRow', ind); //delete rtnjson.rows[0]; rtnjson.rows.splice(ind, 1); ///删除的核心操作,splice(a,b)删除的位置,行数 } rtnjson.total = rtnjson.total - gdrows.length; me1.datagrid1.datagrid('loadData', rtnjson); me1.datagrid1.datagrid('reloadFooter', [ { FIT_NAME : '合计', AMOUNT : sum(), GetherMoney : sum1(), Onsale : sum2() } ]); }}到此,关于这个页面的json数据的操作就完成了。
2 1
- json的操作应用实例
- 以实例讲解json格式应用的json详细教程
- JSON应用实例
- JSON实例应用集合
- java json应用实例
- JSON操作实例
- JS操作JSON实例
- Jquery+JSON+WebService 应用实例....
- struts2-ajax-json应用实例
- JSON-基础知识及实例应用
- 快速高效解析json的工具---fastjson应用实例
- jquery下json数组的操作用法实例
- SpringMVC + Mybatis +JSON + mysql 进行批量插入的实例操作
- python对json的操作及实例解析
- 一个JSON的实例
- 利用Dom4j操作XML的简单应用实例
- PL/SQL的应用操作实例以及解析
- Dom4j操作XML的简单应用实例(作者…
- AIDL的基本应用
- jms queue,tobic发送和接收
- if语句
- nyoj 891 找点 【区间找点】
- 可视化组件——iChart.js定制
- json的操作应用实例
- caffe-custom new layer
- python ssh 登录执行命令
- 欢迎使用CSDN-markdown编辑器
- C++ - 工程中头文件的定义
- Sealed,Internal关键字
- viewpager触摸无效,viewpager触摸停止滑动
- 第二记- Swift版百思不得姐
- UE4 材质的运算节点