原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他
转载,请注明出处哦!谢谢!
原创 : EasyUI datagrid 明细表格中编辑框 事件绑定 及灵活计算 可根据此思路 扩展其他 转载,请注明出处哦!谢谢! /******************************************************** 主要用于 明细表格 字段间的计算 Start ******************************************************/ /** * 将 bindGridEvent() 函数 放在 明细表格,新增行 或 编辑 行事件之后调用即可,由于 每个业务表单的字段名称,及算法不一致,因此仅在单个模块中实现,其他模块需要可复制此代码进行修改 * @author WUYF * @date 2014-03-22 */ /** * 绑定 表格 事件 * @author WUYF */ function bindGridEvent() { try { var objGrid = $("#customerStock"); // 表格对象 var invQtyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invQty'}); // 数量 var invSaleCostEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invSaleCost'}); // 产品单价 var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象 var depositEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'deposit'}); // 折扣率对象 var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'invMoney'}); // 金额对象 // 数量 绑定 离开事件 $(invQtyEdt.target).bind("blur",function(){ calcMoney(); // 根据 数量或单价变更后计算 金额 }); // 单价 绑定 离开事件 $(invSaleCostEdt.target).bind("blur",function(){ calcMoney(); // 根据 数量或单价变更后计算 金额 }); // 折扣额 绑定 离开事件 $(discountEdt.target).bind("blur",function(){ calcDiscount(); // 根据 折扣额变更后 计算 折扣率 }); // 折扣率 绑定离开事件 $(depositEdt.target).bind("blur",function(){ calcDeposit(); // 根据 折扣率变更后 计算 折扣额 }); // 金额 绑定离开事件 $(invMoneyEdt.target).bind("blur",function(){ calcMoneyChange(); // 金额变更 后 重新计算 单价,折扣额,折扣率 }); } catch(e) { alert(e); } } /** * 金额变更 后 重新计算 单价,折扣额,折扣率 */ function calcMoneyChange() { var objGrid = $("#customerStock"); // 表格对象 var invQtyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invQty'}); // 数量对象 var invSaleCostEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invSaleCost'}); // 单价对象 var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'invMoney'}); // 金额对象 var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象 var invQtyValue = $(invQtyEdt.target).val(); // 数量 值 var invMoneyValue = $(invMoneyEdt.target).val(); // 金额 值 var invSaleCostValue = invMoneyValue / (invQtyValue*1.0); // 单价 值 var discountValue = $(discountEdt.target).val(); // 折扣额 值 $(invSaleCostEdt.target).numberbox("setValue",invSaleCostValue); // 给 单价 赋值 if( discountValue == 0){ $(discountEdt.target).numberbox("setValue",invMoneyValue); // 给 折扣额 赋值 } calcDiscount(); // 根据 折扣额 计算 折扣率 } /** * 根据 数量或单价变更后计算 金额 * @author WUYF */ function calcMoney() { var objGrid = $("#customerStock"); // 表格对象 var invQtyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invQty'}); // 数量对象 var invSaleCostEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invSaleCost'}); // 单价对象 var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'invMoney'}); // 金额对象 var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象 var invQtyValue = $(invQtyEdt.target).val(); // 数量 值 var invSaleCostValue = $(invSaleCostEdt.target).val(); // 单价 值 var invMoneyValue = invQtyValue * invSaleCostValue; // 金额 值 var discountValue = $(discountEdt.target).val(); // 折扣额 值 $(invMoneyEdt.target).numberbox("setValue",invMoneyValue); // 给 金额 赋值 if( discountValue == 0){ $(discountEdt.target).numberbox("setValue",invMoneyValue); // 给折扣额 赋值 calcDiscount(); } else{ calcDiscount(); } } /** * 根据 折扣额变更后 计算 折扣率 * @author WUYF */ function calcDiscount(){ var objGrid = $("#customerStock"); // 表格对象 var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invMoney'}); // 金额对象 var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象 var depositEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'deposit'}); // 折扣率对象 var invMoneyValue = $(invMoneyEdt.target).val(); // 金额值 var discountValue = $(discountEdt.target).val(); // 折扣额 值 var depositValue = discountValue / (invMoneyValue * 1.0); // 折扣率 值 $(depositEdt.target).numberbox("setValue",depositValue); // 给折扣率 赋值 } /** * 根据 折扣率变更后 计算 折扣额 * @author WUYF */ function calcDeposit(){ var objGrid = $("#customerStock"); // 表格对象 var invMoneyEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'invMoney'}); // 金额对象 var discountEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex,field:'discount'}); // 折扣额对象 var depositEdt = objGrid.datagrid('getEditor', {index:isEditingRowIndex, field:'deposit'}); // 折扣率对象 var invMoneyValue = $(invMoneyEdt.target).val(); // 金额值 var depositValue = $(depositEdt.target).val(); // 折扣率 值 var discountValue = invMoneyValue * depositValue; // 折扣额 值 $(discountEdt.target).numberbox("setValue",discountValue); // 折扣额 赋值 } /******************************************************** 主要用于 明细表格 字段间的计算 End ******************************************************/
分类:
JavaScript,JQuery,Css
, EasyUI
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
2013-03-22 项目中用到的开源框架
2013-03-22 C# ThreadState属性分析