游乐游手机版
首页/前端开发/文章详情

jQuery EasyUI 数据网格列运算实现教程

时间:2026-08-31 11:57
本文介绍如何在 jQuery EasyUI 的可编辑数据网格中实现列运算功能。通过绑定编辑器事件,自动计算并更新目标列的值,提升表格交互体验。

在数据表格中,经常需要根据用户输入自动计算并显示衍生列的值。本文通过 jQuery EasyUI 的 datagrid 组件,演示如何在可编辑行中实现列间自动运算,帮助开发者快速构建动态数据表格。

创建可编辑数据网格

首先,使用 HTML 表格结构初始化一个可编辑的 datagrid。其中,listprice(单价)、amount(数量)和 unitcost(总价)列均配置为 numberbox 编辑器,支持数值输入与精度控制。

Item ID List Price Amount Unit Cost Attribute Status

运算列 unitcost 的值将由 listpriceamount 相乘得出。通过 editor 属性指定编辑类型,确保输入框仅接受数字并保留指定小数位。

点击行触发编辑状态

当用户点击表格中的某一行时,需要结束上一行的编辑状态,并开启当前行的编辑模式。通过 onClickRow 事件实现行切换逻辑:

var lastIndex;
$('#tt').datagrid({
    onClickRow: function(rowIndex) {
        if (lastIndex != rowIndex) {
            $('#tt').datagrid('endEdit', lastIndex);
            $('#tt').datagrid('beginEdit', rowIndex);
            setEditing(rowIndex);
        }
        lastIndex = rowIndex;
    }
});

变量 lastIndex 用于记录上一次编辑的行索引。切换行时调用 endEdit 保存数据,并通过 beginEdit 激活新行的编辑器,随后调用 setEditing 函数绑定运算逻辑。

绑定事件实现列运算

setEditing 函数中,获取当前行的所有编辑器实例,并为单价和数量输入框绑定 change 事件。当任一值发生变化时,自动计算总价并更新到目标编辑器中。

function setEditing(rowIndex) {
    var editors = $('#tt').datagrid('getEditors', rowIndex);
    var priceEditor = editors[0];
    var amountEditor = editors[1];
    var costEditor = editors[2];

    priceEditor.target.bind('change', function() {
        calculate();
    });
    amountEditor.target.bind('change', function() {
        calculate();
    });

    function calculate() {
        var cost = priceEditor.target.val() * amountEditor.target.val();
        $(costEditor.target).numberbox('setValue', cost);
    }
}

通过 getEditors 方法获取当前行的编辑器数组,按列顺序索引对应字段。绑定 change 事件后,用户修改单价或数量时,calculate 函数会实时读取输入值并执行乘法运算,最终通过 numberbox('setValue') 将结果写入总价列。

jQuery EasyUI 数据网格列运算界面

该实现方式适用于需要实时计算的场景,如订单金额、库存统计等。注意确保输入值为有效数字,避免空值或非法字符导致计算异常。如需更复杂的运算逻辑,可在 calculate 函数中扩展条件判断或调用外部计算模块。

来源:https://www.runoob.com/jeasyui/jeasyui-datagrid-datagrid15.html
上一篇jQuery EasyUI 数据网格合并单元格完整指南 下一篇jQuery EasyUI 数据网格扩展 numberspinner 编辑器教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CSS3面试题高频问题与答题思路
前端开发 · 2026-09-01

CSS3面试题高频问题与答题思路

准备CSS3面试题时,仅背诵概念难以应对真实追问。本文提供“定义+场景+对比+注意事项”的答题模板,梳理10道高频问题及追问点,并给出完整示范与避坑指南,帮助你在面试中快速组织语言、展现实战经验。

CSS display:grid 布局用法与常见问题排查
前端开发 · 2026-09-01

CSS display:grid 布局用法与常见问题排查

CSS display:grid 是构建二维页面结构的核心声明。本文从开启网格容器、定义列与间距、编写最小示例到响应式策略,系统梳理其用法,并提供“现象-原因-解决”的高频问题排查路径,帮助开发者快速搭建卡片矩阵与复杂内容区。

CSS3元素旋转:语法、交互与常见问题排查
前端开发 · 2026-09-01

CSS3元素旋转:语法、交互与常见问题排查

本文系统讲解CSS3元素旋转的实现方法,涵盖transform: rotate()基础语法、旋转中心设置、过渡与动画搭配技巧,以及常见布局与覆盖问题排查。通过可复制的代码示例与场景建议,帮助开发者快速落地稳定、自然的旋转交互效果。

CSS3动画一直重复?排查与修复指南
前端开发 · 2026-09-01

CSS3动画一直重复?排查与修复指南

CSS3动画持续重复通常由两类原因导致:配置了无限循环或交互逻辑反复重播。本文提供四步排查路径,涵盖样式覆盖检查、事件绑定验证与状态切换分析,并给出可直接复用的CSS与JS修复示例,帮助快速定位并解决动画异常问题。

CSS常见写法与应用场景:从基础样式到响应式布局的实战示例
前端开发 · 2026-09-01

CSS常见写法与应用场景:从基础样式到响应式布局的实战示例

本文通过可复制的HTML与CSS代码示例,系统讲解选择器、文字样式、盒模型、Flex与Grid布局以及响应式设计的常见写法。每个示例均附带明确的应用场景与调试建议,帮助初学者快速建立样式编写思路,并掌握从桌面端到移动端的适配方法。