You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VB.Net后置代码逐行遍历Javascript ag-grid表格数据

可行方案说明

ag-grid是纯前端运行的JavaScript组件,所有行数据默认仅存储在浏览器端内存中,运行在服务器端的VB.Net后置代码无法直接访问前端内存数据,必须通过前端主动回传、或者复用服务端原始数据源的方式实现遍历,具体可选用以下两种方案:

方案1:前端主动同步全量数据到后端

适合ag-grid数据在前端做了修改、和服务端原始数据源不一致的场景:

  • 前端侧调用ag-grid原生API获取全量行数据,序列化为JSON后通过隐藏域提交、AJAX请求等方式回传到后端
  • 后端VB.Net接收JSON数据后反序列化为可遍历的集合对象即可逐行处理

前端示例代码

// 遍历ag-grid所有行节点收集数据
const allRowData = [];
gridOptions.api.forEachNode(node => {
  allRowData.push(node.data);
});
// 将数据存入隐藏域触发回发
document.getElementById('hiddenAgGridData').value = JSON.stringify(allRowData);
__doPostBack('', '');

后端VB.Net示例代码

' 接收前端回传的JSON数据
Dim gridJson As String = Request.Form("hiddenAgGridData")
' 反序列化为集合(需引用Newtonsoft.Json或使用System.Text.Json)
Dim allRows As List(Of Dictionary(Of String, Object)) = Newtonsoft.Json.JsonConvert.DeserializeObject(Of List(Of Dictionary(Of String, Object)))(gridJson)

' 逐行遍历处理
For Each row In allRows
    ' 示例:获取指定字段值
    Dim fieldValue As String = row("对应的ag-grid列字段名")?.ToString()
    ' 此处添加自定义业务逻辑
Next

方案2:复用服务端原始数据源

适合ag-grid的渲染数据本身由VB.Net后端提供、且前端未修改行数据的场景:

  • 直接使用后端存储的ag-grid原始数据源遍历即可,不需要额外做前后端数据同步
  • 该方案效率最高,也不会出现前后端数据不一致的问题,优先推荐使用

注意事项

  • 如果ag-grid使用的是客户端行模型,api.forEachNode()可以遍历所有已经加载到前端的行数据;如果使用的是服务端行模型/无限行模型,前端只会缓存部分行数据,此时建议直接复用服务端原始数据源获取全量数据
  • 数据量超过1000行时不建议全量回传,会显著增加请求体积和服务端解析耗时,建议优先筛选需要处理的行再回传

内容的提问来源于stack exchange,提问作者simon shaw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:45:00