初始 handsontable 视图不会拉伸到正确的宽度

Initial handsontable view does not stretch to correct width

我有一个 handsontable object(实际上是两个 object,都在 bootstrap 模态中)在页面构建后加载数据。这是一个重复问题的 jsfiddle https://jsfiddle.net/mtbdeano/w7dofbyy/

table 的大小太窄了,即使 stretchH: all 选项也是如此。单击内容后,它们会像变魔术一样调整到正确的列宽。我是否缺少一些初始化参数?如何在加载新数据后将其调整为正确的宽度?

  /* these tables are in the modal */
  $('#keyword_table').handsontable({
    data: keyword_data,
    rowHeaders: true,
    colHeaders: ['Keywords'],
    columnSorting: true,
    contextMenu: true,
    height: 256,
    stretchH: "last",
    enterBeginsEditing: false,
    minSpareRows: 1
  });

我正在使用此代码加载数据,该代码在成功 ajax 调用时调用:

function load_table_from_ajax(tbl, data) {
  var $tbl = $(tbl);
  var hot = $tbl.handsontable('getInstance');
  // this formats my data appropriately
  var new_data = _.map(data, function (kw) {
    return new Array(kw);
  });
  hot.loadData(new_data);
  /* I have tried also doing a: hot.render(); */
}

根据教程,所有代码看起来都是正确的,知道为什么 table 不 stretch/resize 正确吗?

在与 Handson 互动之前table,它看起来像这样: 但在单击 header 或添加值后:

尝试colWidths:[100]

以像素为单位定义列宽。接受数字、字符串(将被转换为数字)、 数字数组(如果你想为每一列单独定义列宽)或 函数(如果你想在每个渲染器上动态设置列宽)。

尝试在初始化时给出 width。由于您没有设置它,stretchH 可能无法进行所需的计算。我以前见过这种行为,设置这个通常可以解决问题。