0

Handson テーブルの新しい行に対してのみチェックされるようにデフォルト値を設定する方法は?

この次のリンクでは、列「C」checked = true を新しい行のみのデフォルトとして設定する方法を示しています。

何か案が ?

http://handsontable.com/demo/renderers.html

$(document).ready(function () {

  var data = [
    {id: 1, name: "Ted", isActive: true, color: "orange", date: "2008-01-01"},
    {id: 2, name: "John", isActive: false, color: "black", date: null},
    {id: 3, name: "Al", isActive: true, color: "red", date: null},
    {id: 4, name: "Ben", isActive: false, color: "blue", date: null}
  ];

  var yellowRenderer = function (instance, td, row, col, prop, value, cellProperties) {
    Handsontable.TextCell.renderer.apply(this, arguments);
    $(td).css({
      background: 'yellow'
    });
  };

  var greenRenderer = function (instance, td, row, col, prop, value, cellProperties) {
    Handsontable.TextCell.renderer.apply(this, arguments);
    $(td).css({
      background: 'green'
    });
  };

  var $container = $("#example1");
  $container.handsontable({
    data: data,
    startRows: 5,
    colHeaders: true,
    minSpareRows: 1,
    columns: [
      {data: "id", type: 'text'},
      //'text' is default, you don't actually have to declare it
      {data: "name", type: {renderer: yellowRenderer}},
      {data: "isActive", type: 'checkbox'},
      {data: "date", type: 'date'},
      {data: "color",
        type: 'autocomplete',
        source: ["yellow", "red", "orange", "green", "blue", "gray", "black", "white"]
      }
    ],
    cells: function (row, col, prop) {
      if (row === 0 && col === 0) {
        this.renderer = greenRenderer;
      }
    }
  });

  function bindDumpButton() {
      $('body').on('click', 'button[name=dump]', function () {
        var dump = $(this).data('dump');
        var $container = $(dump);
        console.log('data of ' + dump, $container.handsontable('getData'));
      });
    }
  bindDumpButton();

});
4

1 に答える 1

1

自分を知ることができた

afterCreateRow コールバックにコードを追加することで、新しく作成された行のデフォルトの列値を設定できます。次のコードを afterCreateRow コールバックに追加しましたが、正常に動作しているようです。

afterCreateRow: function(index) {
                        if (handsontable != undefined) {
                            var data = $("#hsTable").data('handsontable').getData();
                            data[index - 1].(dataSchemaField)= true;
                        }
                    }
于 2013-11-15T22:20:34.853 に答える