如何为 Handsontable 创建动态列?
Posted
技术标签:
【中文标题】如何为 Handsontable 创建动态列?【英文标题】:How to create dynamic columns for Handsontable? 【发布时间】:2013-04-17 15:15:38 【问题描述】:我正在使用 Handsontable 创建一个可以在 web 和 excel 之间复制/粘贴的 web 网格,我尝试使用下面的代码,它工作正常:
var first = true;
var exampleGrid = $("#exampleGrid");
exampleGrid.handsontable(
rowHeaders: true,
colHeaders: true,
stretchH: 'all',
minSpareCols: 0,
minSpareRows: 0,
height: 600,
columns: [
data: "Id", title: "ID", type: "text" , //'text' is default, you don't actually have to declare it
data: "Name", title: "Name", type: "text" ,
data: "DisplayColor",
title: "Display Color",
type: 'autocomplete',
source: ["yellow", "red", "orange", "green", "blue", "gray", "black", "white"]
,
data: "Description", title: "Description", type: 'text' ,
data: "IsDeleted", title: "Is Deleted", type: 'checkbox'
],
colWidths: [400, 100, 60, 100, 50, 40, 40, 60], //can also be a number or a function
contextMenu: false,
);
现在我需要创建带有动态列的网络网格,我尝试用下面的函数替换列列表,但它不起作用:
columns:
function ()
var cols = [];
for (var i = 0; i < 1; i++)
var col = new Object();
col.data = "Name";
col.title = "Name" + i.toString();
col.type = "text";
cols[i] = col;
return cols;
,
是否可以在 Handsontable 网格中创建动态列?以及怎么做?
我是 javascript 初学者,如果我犯了任何错误,请告诉我,谢谢!
【问题讨论】:
【参考方案1】:自己解决了这个问题,函数不能直接在列定义中使用,但是变量是允许的,所以下面的代码可以工作:
var dynamicColumns = [];
for (var i = 0; i < 366; i++)
var col = new Object();
col.data = "Name";
col.title = "Name " + i.toString();
col.type = "text";
dynamicColumns.push(col);
skillGrid.handsontable(
// ...
columns: dynamicColumns,
// ...
【讨论】:
@GôTô,作为问题的所有者,您是必须选择正确答案的人(在这种情况下,只有一个,它是正确的)。不是反过来。否则“每个人”都可以选择他们的答案作为正确的答案:)。 @HelmutGranda 这个答案是由提出问题的人提供的............以上是关于如何为 Handsontable 创建动态列?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 bootstrap-vue 2.0 中的列创建动态输入过滤器