当前位置: 首页 > news >正文

KingFusion系列33-如何向数据表格末尾追加一行新数据

今天在使用KingFusion时在程序中看到这么一句代码:

$(Datagrid1.id).datagrid('appendRow',{'c_SampleOrder': i+1});

通过向AI学习了解到该语句的意思,于是将该知识点整理添加到Obsidian个人知识库中;

代码整体功能

这是jQuery EasyUI 框架中 DataGrid 数据表格组件的操作代码,核心作用是:向指定 ID 的数据表格末尾追加一行新数据,并给c_SampleOrder字段赋值为i+1


逐段拆解解析

1. 选择器部分:$(Datagrid1.id)

  • Datagrid1

    是一个原生 DOM 元素对象(通常对应页面中的<table>标签元素),.id是 DOM 原生属性,用于获取该元素的id属性值(字符串格式)。

  • $()

    是 jQuery 的核心选择器,整句等价于$("#" + Datagrid1.id),即通过 ID 选中表格的 jQuery 对象,为后续调用 EasyUI 组件方法做准备。

  • 示例:如果页面表格为<table id="sampleGrid"></table>,且Datagrid1 = document.getElementById('sampleGrid'),那么Datagrid1.id的值就是字符串sampleGrid$(Datagrid1.id)等价于$('#sampleGrid')

2. 方法调用:.datagrid('appendRow', ...)
  • .datagrid()是 jQuery EasyUI 为表格元素扩展的组件方法,有两种核心用法:

  • 传入配置对象:用于初始化表格(定义列、数据源、分页等)

  • 传入方法名字符串 + 参数:调用表格的内置操作方法

  • 'appendRow'是 DataGrid 的内置行操作方法,固定作用是在表格本地数据集的末尾追加一行新记录

3. 行数据参数:{'c_SampleOrder': i+1}

这是appendRow方法的入参,是一个 JSON 对象,代表新行的字段与对应值:

  • c_SampleOrder:必须和 DataGrid 初始化时columns配置里的field属性完全一致(大小写敏感),对应表格中的某一列(通常是序号列)。

  • i+1:给该字段赋的具体值。i一般是循环计数器变量,i+1常用于实现序号从 1 开始自动递增。


关键注意事项

  1. 依赖前提

    :页面必须先引入 jQuery 库和 jQuery EasyUI 库,否则.datagrid()方法不存在,会直接抛出 JS 错误。

  2. 字段匹配

    c_SampleOrder必须与表格初始化的列字段名完全一致,否则新行的该列会显示空白。

  3. 变量要求

    i必须是已定义的数值型变量,否则会抛出i is not defined错误。该写法几乎都用于循环批量追加多行的场景。

  4. 分页影响

    appendRow是向表格的本地数据集追加数据;若表格开启了分页,新行会计入总数据量,显示在最后一页的末尾

  5. 常见坑点

    :如果Datagrid1是 jQuery 对象而非原生 DOM,Datagrid1.id会是undefined,导致选择器失效。jQuery 对象获取 ID 需用Datagrid1.attr('id')


完整场景示例

// 1. 初始化EasyUI DataGrid $('#sampleGrid').datagrid({ columns: [[ { field: 'c_SampleOrder', title: '序号', width: 80 }, { field: 'sampleName', title: '样品名称', width: 200 } ]], data: [] // 初始空数据 }); // 2. 原生DOM元素变量(对应你代码中的Datagrid1) var Datagrid1 = document.getElementById('sampleGrid'); // 3. 循环追加5行数据(典型使用场景) for (var i = 0; i < 5; i++) { $(Datagrid1.id).datagrid('appendRow', { 'c_SampleOrder': i + 1, 'sampleName': '样品' + (i + 1) }); }
http://www.jsqmd.com/news/1142708/

相关文章:

  • 图片数字人 API 快速接入指南(小白版)
  • 腾讯混元携手多所高校,让3D网格生成快如闪电
  • Anthropic 发布 Claude Sonnet 5 反击,Gemini 3.5 Pro 与 DeepSeek V4 定档 7月17日同日对决
  • 【Python深度学习系列】一文搞明白“显存”与“内存”的区别和联系
  • 2026最新5款基础版免费AI编程助手平替实测合集
  • STM32与PAM8904构建高效压电蜂鸣器驱动系统
  • 从焊得住到微米级:Rubin全液冷给焊接的三大考题
  • Ideogram 4.0视觉编码器:从语义理解到设计意图解析的技术突破
  • 3步构建开源能源大脑:OpenEMS实战部署与智能控制指南
  • 用 Ace Data Cloud 快速接入 Kling Motion:让图片按指定动作生成视频
  • 深入解析openeuler/qla2xxx:Marvell QLogic FC HBA驱动完全指南
  • WebBuilder Layout 布局体系架构、渲染逻辑与底层实现全解析
  • 2026资阳黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式
  • 我加了 `InMemorySaver`,为什么 Agent 还是没记忆?
  • Fastjson 1.2.68反序列化漏洞实战:绕过AutoType黑名单的攻防解析
  • Airtest自动化测试第二篇:图像识别脚本编写——核心API详解与实战技巧
  • lsof 命令使用参数
  • 食堂采购系统源码解析:核心功能设计与技术实现
  • 开启 Harness Engineering 探索之旅
  • PW7126+PW80N03*2三串锂电池充放电保护板方案,持续7A,过流保护10A
  • IRISMAN完整指南:PS3自定义固件玩家的终极游戏管理解决方案
  • 2026最新7款AI编程工具平替实测合集
  • [SQL实战] 对账总是对不上?先把主键、时间口径和异常明细拆出来再查
  • (最新安装包)告别繁琐配置!OpenClaw 一键脚本,轻松搞定本地 AI 自动化
  • PW7126+PW4406A*2三串锂电池充放电保护板方案,持续3A,过流保护4A
  • AI不是代替人,而是把人的价值放大
  • 5大核心优势解析:为什么ImageGlass是现代Windows图片浏览的终极解决方案?
  • 2026平价入门蓝牙耳机选购指南:热门机型选购全指南
  • 一次RSS配置错误引发的百万级乱序事故——深入理解DPDK RSS、Toeplitz Hash、Queue Affinity与Flow一致性(下)
  • 2026毕节黄金回收白银回收铂金回收价格高无损耗专业鉴定本地人常去门店联系方式推荐