当与web2py一起使用时,HandsOnTable的contextMenu似乎有问题。如果数据源是脚本中的数组,则上下文菜单可以正常工作;如果数据源是其他任何东西 - 即来自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应用程序中),表格会正确构建,上下文菜单会显示所有项目,但是&#34;在&#34;上面插入行。和&#34;在&#34;下方插入行被禁用并变灰。 (数据来自调用此视图的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 :(得分:0)
问题与web2py或HandsOnTables无关;这是我对maxRows如何工作的误解。我将maxRows设置为一个值,数据集的行数大于maxrows值。因此,当然,不能再向表中添加行,并且add_row函数不起作用。通过删除maxrows值,它可以正常工作。我的错误......