我有类似的代码:
<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
值?如果可以访问其他小区&#39;价值如td[index]
。
任何的想法?我没有在文档中找到选项。
谢谢
答案 0 :(得分:1)
我想我明白你想做什么,这是一个简单的解决方案:
从自定义渲染器内部,您可以调用:
instance.getDataAtCell(row, col);
这将为您提供row,col
处单元格的数据(值)。希望有所帮助:)
另外,要访问当前td的值,只需使用value
变量:P查看函数定义。你实际上是在传递它并且可以使用。
答案 1 :(得分:1)
您可以使用jExcel执行此操作,它不是可处理的,但可以完成此任务。 http://bossanova.uk/jexcel
data = [
['3D Systems ', 'DDD', 15.08, 15.1, 0.01, 0.07],
['3M', 'MMM', 178.34, 178.65, 0.49, 0.28],
['58.com', 'ADR WUBA', 30.01, 29.1, -0.76, -2.55],
['500.com', 'ADR WBAI', 13.48, 13.56, 0.1, 0.74],
];
// Create the spreadsheet based on data
$('#my').jexcel({
data:data,
colHeaders: ['Name', 'Symbol', 'Open', 'Close', '% Net', '% Change'],
colWidths: [ 300, 80, 100, 100, 100, 100 ],
});
// Live update of the settings
$('#my').jexcel('updateSettings', {
cells: function (cell, col, row) {
if (col == 4 || col == 5) {
// To access different cells. Where x = column, y = row starting on zero.
var cell = '#' + x + '-' + y;
cell = $('#my').find(cell);
val = $('#my').jexcel('getValue', $(cell));
}
}
});
答案 2 :(得分:0)
要确定此问题的资格,您是否可以检查传递到td
的{{1}}参数。这将有助于理解这是什么,我认为它是一个HTML DOM节点。如果是这样,您可以使用sumPreviousValues()
有关这方面的更多信息,请访问: http://www.w3schools.com/jsref/prop_html_innerhtml.asp