首页 > 解决方案 > JqG​​rid - 更新所有数据单元格中的值

问题描述

我的 JqGrid 看起来像这样:

职员 1号房间 2号房间
吉姆 240 120
戴夫 480 240

员工和房间是从桌子上获得的,并且在运行时数量未知。数字(数据)代表每个工作人员在每个房间花费的总时间,以分钟为单位。我有上述所有工作。

我现在要做的就是遍历所有数据条目并将分钟(例如:240)更改为小时和分钟(例如 4h:0m)。我可以进行转换的数学运算,这是对单元格的循环以及读取和更新(只是显示的值)打败了我。

到目前为止,这是我的循环代码:

 var $grid = jQuery('#statstab1grid') 
 var rows  = $grid[0].rows 
 var crows = rows.length
 var irow, row, cellsofrow

 for (irow = 1; irow < crows; irow++) 
 {
  row        = rows[irow];  
  cellsofrow = row.cells;

  alert('$(cellsofrow[0]).text() is ' + $(cellsofrow[0]).text())
  alert('$(cellsofrow[1]).text() is ' + $(cellsofrow[1]).text())
 }

第一个警报输出 Jim 然后 Dave,第二个警报不输出任何内容,只是提示。即使我设法访问数据值,我将如何将修改后的值写回网格?

标签: jqgrid

解决方案


最好发布使用哪个版本的 jqGrid。这是重要的部分。

您发布的代码和您对单元格索引 1 没有任何警报的评论可以告诉我,您的 colModel 中可能有一个隐藏字段,该字段的值为空。在这种情况下,最好发布您的整个网格设置。

对于这个问题 - 你有很多选择来做这个转换。

  1. 您可以使用自定义格式化程序 - 您可以在此处找到有关此的更多信息。这种方法是首选。

  2. 您可以使用 getRowData(不带参数)获取网格中的所有数据,并使用 setRowData 更新值。如果网格中有大量数据,请小心使用此方法 - 在这种情况下会很慢。有关网格方法,请参阅文档

  3. 如果您的数据是本地(数组),您可以在将其放入网格之前重新计算它


推荐阅读