Handsontable:如何在渲染函数中更改单元格值
Posted
技术标签:
【中文标题】Handsontable:如何在渲染函数中更改单元格值【英文标题】:Handsontable : how to change cell value in render function 【发布时间】:2015-05-16 05:47:40 【问题描述】:我有类似的代码:
<script>
$(document).ready(function ()
var data = @html.Raw(ViewBag.Data);
function sumPreviousValues(instance, td, row, col, prop, value, cellProperties)
Handsontable.renderers.TextRenderer.apply(this, arguments);
td.val = 'SUM SEVERAL PREVIOUS CELLS';
container = document.getElementById('example1'),
settings1 =
data: data,
colHeaders: @Html.Raw(ViewBag.TableHeader),
cells: function (row, col, prop)
var cellProperties = ;
if (col == 16)
cellProperties.renderer = sumPreviousValues;
return cellProperties;
,
hot = new Handsontable(container,settings1);
hot.render();
关键是修改函数sumPreviousValues()
但我不知道如何访问td
值?以及是否可以访问其他单元格的值,例如td[index]
。
任何想法?我没有在文档中找到选项。
谢谢
【问题讨论】:
【参考方案1】:我想我明白你想要做什么,这里有一个简单的解决方案:
从自定义渲染器内部,您可以调用:
instance.getDataAtCell(row, col);
这将为您提供row,col
单元格的数据(值)。希望有帮助:)
另外,要访问当前 td 的值,您只需使用 value
变量 :P 查看函数定义。您实际上是在传递它并且可供您使用。
【讨论】:
取决于其余的动手实现的样子。如果它选择了错误的逻辑索引,那么您可以查看文档,了解如何使用他们提供的简单单行来检索物理索引。【参考方案2】:要限定这个问题,您能否检查传递给sumPreviousValues()
的td
参数。这将有助于理解这是什么,我假设它是一个 HTML DOM 节点。如果是这样,您可以使用 td.innerHTML
更多信息可以在这里找到: http://www.w3schools.com/jsref/prop_html_innerhtml.asp
【讨论】:
实际上很难使用 DOM 元素引用 Handsontable 中单元格的值,因为它会自动呈现整个表格,因此很难找到任何特定的td
。最好通过HOT提供的instance
对象访问数据以上是关于Handsontable:如何在渲染函数中更改单元格值的主要内容,如果未能解决你的问题,请参考以下文章
自定义渲染器功能在 Handsontable 插件中不起作用
如何在jQuery中使用handsontable为特定单元格设置属性?