使用数组作为带有handsontable的列
Posted
技术标签:
【中文标题】使用数组作为带有handsontable的列【英文标题】:Using arrays as columns with handsontable 【发布时间】:2018-10-17 11:39:51 【问题描述】:我正在使用handsontable 来显示应用程序的数据。我想将数组用作 columns,我似乎无法通过文档弄清楚。我想最好的方法是使用我的数组的数组,但我无法将它们拼凑在一起。
到目前为止的代码如下:
var data = [
["Sale Month", "Usage", "Address", "Tax Assessment", "Loan Amount", "Initial Equity", "Lien Start Date", "Lien Term", "Loan Type", "Square Feet", "Year Build", "Acres"
, "Beds", "Baths", "Lotsort"]
];
var container = document.getElementById('listview');
var hot = new Handsontable(container,
data: data,
rowHeaders: true,
colHeaders: true
);
每个列标题都有一组数组。例如,saleMonth
数组看起来像 ['01/18, 03/16, 01/12']
等等。我想将每个数组的索引用于相应列中的条目。
这是当前的输出:
Screenshot
如果我可以更清楚,请告诉我。
谢谢!
编辑:添加了JSFiddle
【问题讨论】:
你能在fiddle 中重现这个吗? @Taki 是的,已将其添加到我的原始帖子中。 【参考方案1】:我稍微更改了您的数据结构:将 data
更改为标题列表 (columns
) 并将您的值数组移动到映射 (values
) 中,其中键是列的名称和该值是原始数组
通过这种方式,您可以详细说明您的数据,从而以合适的格式创建一个 rows
数组
var saleMonth = ['01/18', '03/20']
var usageArray = ['Residential', 'Commercial']
var values =
'Sale Month': saleMonth,
'Usage': usageArray
var columns =
["Sale Month", "Usage", "Address", "Tax Assessment", "Loan Amount", "Initial Equity", "Lien Start Date", "Lien Term", "Loan Type", "Square Feet", "Year Build", "Acres" , "Beds", "Baths", "Lotsort"]
;
var rows=[];
var numOfRow
for ( numOfRow = 0; numOfRow < saleMonth.length; numOfRow++ )
rows.push(columns.map((e) =>
if (e in values) return values[e][numOfRow]
return e;
));
var container = document.getElementById('listview');
var hot = new Handsontable(container,
data: rows,
rowHeaders: true,
colHeaders: true
);
您还可以在Hansontable
配置对象中设置colHeaders: columns
以获取列标题而不是字母
【讨论】:
以上是关于使用数组作为带有handsontable的列的主要内容,如果未能解决你的问题,请参考以下文章