jquery – 如何为Handsontable创建动态列?

前端之家收集整理的这篇文章主要介绍了jquery – 如何为Handsontable创建动态列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Handsontable创建一个可以在web和excel之间复制/粘贴的网格,我尝试使用下面的代码,它工作正常:
  1. var first = true;
  2. var exampleGrid = $("#exampleGrid");
  3. exampleGrid.handsontable({
  4. rowHeaders: true,colHeaders: true,stretchH: 'all',minSpareCols: 0,minSpareRows: 0,height: 600,columns: [
  5. { data: "Id",title: "ID",type: "text" },//'text' is default,you don't actually have to declare it
  6. { data: "Name",title: "Name",{ data: "DisplayColor",title: "Display Color",type: 'autocomplete',source: ["yellow","red","orange","green","blue","gray","black","white"]
  7. },{ data: "Description",title: "Description",type: 'text' },{ data: "IsDeleted",title: "Is Deleted",type: 'checkBox' }
  8. ],colWidths: [400,100,60,50,40,60],//can also be a number or a function
  9. contextMenu: false,});

现在我需要使用动态列创建Web网格,我尝试用下面的函数替换列列表,但它不起作用:@H_502_5@

  1. columns:
  2. function () {
  3. var cols = [];
  4. for (var i = 0; i < 1; i++) {
  5. var col = new Object();
  6.  
  7. col.data = "Name";
  8. col.title = "Name" + i.toString();
  9. col.type = "text";
  10. cols[i] = col;
  11. }
  12. return cols;
  13. },

是否可以在Handsontable网格中创建动态列?怎么做?@H_502_5@

我是一个JavaScript初学者,所以请告诉我,如果我有任何错误,谢谢!@H_502_5@

解决方法

我自己解决了这个问题,函数不能直接在列定义中使用,但允许变量,所以下面的代码有效:
  1. var dynamicColumns = [];
  2. for (var i = 0; i < 366; i++) {
  3. var col = new Object();
  4. col.data = "Name";
  5. col.title = "Name " + i.toString();
  6. col.type = "text";
  7. dynamicColumns.push(col);
  8. }
  9.  
  10. skillGrid.handsontable({
  11. // ...
  12. columns: dynamicColumns,// ...

猜你在找的jQuery相关文章