3

I have similar code:

<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();

The key is to modify the function sumPreviousValues()

But I dont know how to access the td value ? and if it is possible to access other cells' value like td[index]. Any idea? I didn't find options in documentation.

Thank you

bisko
  • 3,948
  • 1
  • 27
  • 29
Muflix
  • 6,192
  • 17
  • 77
  • 153

2 Answers2

3

I think I understand what you want to do and here is a simple solution:

From inside the custom renderer, you can call:

instance.getDataAtCell(row, col);

This will give you the data (value) of the cell at row,col. Hope that helps :)

Also, to access the value at the current td, you just use the value variable :P Look at the function definition. You are literally passing it in and is available to you.

ZekeDroid
  • 7,089
  • 5
  • 33
  • 59
  • Depends what the rest of the handson implementation looks like. If it IS picking up the wrong logical indeces, then you can look at the docs on how to retrieve the physical indeces using a simple one liner that they provide. – ZekeDroid Apr 15 '16 at 13:45
0

To qualify this question, can you inspect the td param being passed into sumPreviousValues(). It would help to understand what this is, I would assume it's a HTML DOM node. If so, you could adjust it's value using td.innerHTML

More information on this can be found here: http://www.w3schools.com/jsref/prop_html_innerhtml.asp

  • It's actually hard to reference the value of a cell in Handsontable using DOM elements because it automatically renders the entire table, making it hard to find any particular `td`. It's better to access the data through the `instance` object provided by HOT – ZekeDroid Mar 14 '15 at 01:30