2016-03-08 39 views
0

与web2py一起使用时,HandsOnTable的contextMenu似乎有问题。如果数据源是脚本中的数组,则上下文菜单起作用;如果数据源是其他内容 - 即来自web2py--,则上下文菜单不起作用。例如:HandsOnTable上下文菜单:如何使它与web2py数据一起工作?

当我实例化一个HandsOnTable与此,上下文菜单的工作原理:

document.addEventListener("DOMContentLoaded", function() { 
var data = [ 
     { 
      "id":1, 
      "last_name":"Abbrederis", 
      "first_name":"Jason", 
      "pos":"WR" 

     }, 
     { 
      "id":2, 
      "last_name":"Abbrederis", 
      "first_name":"Jason", 
      "pos":"WR" 
     }, 
     { 
      "id":3, 
      "last_name":"Adams", 
      "first_name":"Davante", 
      "pos":"WR" 
     } 
     ]; 

var hotElement = document.getElementById('list'); 
datatable = new Handsontable(hotElement, { 
    data: data, 
    contextMenu: ['row_above','row_below','remove_row','undo','redo'], 

    <snip other table configuration> 

但是,如果我实例与此表(在web2py的应用程序),该表建立正确和上下文菜单显示所有项目,但“插入上方的行”和“插入下方的行”禁用并变灰。 (数据来自web2py的函数调用这个观点,并且是一个标准的web2py数据库检索。)

document.addEventListener("DOMContentLoaded", function() { 

var data = {{=XML(data.json())}} 

var hotElement = document.getElementById('list'); 
datatable = new Handsontable(hotElement, { 
    data: data, 
    contextMenu: ['row_above','row_below','remove_row','undo','redo'], 

    <snip other table configuration> 

我记得在什么地方见过这种行为是已知的,即上下文菜单正常工作,只有当该数据表是一个数组。那是对的吗?是否有任何解决方法使上下文菜单正常工作,因为它应该在web2py应用程序中运行?

+0

假设'data'是一个web2py'Rows'对象,'data.json()'就是您所需要的(即JSON格式的记录数组)。我建议你看看最终呈现的HTML,看看JSON是否看起来不正确。 – Anthony

+0

你可以尝试通过使contextMenu:真 – Mazzu

+0

感谢您的回应,安东尼.. 安东尼:JSON看起来很好的HTML。我认为这是一个HandsOnTables问题,因为如果JSON搞砸了,表格可以完美呈现,而且不会。 – johnz

回答

0

该问题与web2py或HandsOnTables无关;这是我对maxRows如何工作的误解。我将maxRows设置为一个值,并且数据集的行数超过了最大值。所以,当然,没有更多的行可以添加到表中,并且add_row函数不起作用。通过删除最大值,它的工作原理应该如此。我的错误...

相关问题