0

我想做一个类似于http://handsontable.com/demo/prepopulate.html的事情,除了我想预先填充列而不是行。

我明白我必须使用一个函数来定义默认渲染。但是,它似乎只在添加行而不是列时才有效:新闻行填充了“默认”而不是列。

这是我尝试过的:

function defaultValueRenderer(instance, td, row, col, prop, value, cellProperties) {
  var args = $.extend(true, [], arguments);
  if (args[5] === null) {
      td.style.color = 'red';
      args[5] = "default";      
  }
  Handsontable.TextCell.renderer.apply(this, args);
}

var myData = [
    ["", "Kia", "Nissan", "Toyota", "Honda"],
    ["2008", 10, 11, 12, 13],
    ["2009", 20, 11, 14, 13],
    ["2010", 30, 15, 12, 13]
    ];

$("#exampleGrid").handsontable({
    data: myData,
    minSpareCols: 1,
    minSpareRows: 1,
    cells: function (row, col, prop) {
            var cellProperties = {};
            cellProperties.type = {renderer: defaultValueRenderer}
            return cellProperties;
        }
});​

添加备用列(仅用于备用行)时,似乎没有调用 defaultValueRenderer 函数。

http://jsfiddle.net/QtGau/2/

谢谢你的提示

编辑:该值似乎是一个空字符串。我可能会将其用作解决方法,但是我相信我在这里误解了一些东西

4

1 回答 1

0

由于我没有得到回复,我正在回答我自己。我使用 === null 或 === "" 来破解。它有效,它很丑陋,总比没有好;)

于 2012-12-22T19:50:04.997 回答