与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应用程序中运行?
假设'data'是一个web2py'Rows'对象,'data.json()'就是您所需要的(即JSON格式的记录数组)。我建议你看看最终呈现的HTML,看看JSON是否看起来不正确。 – Anthony
你可以尝试通过使contextMenu:真 – Mazzu
感谢您的回应,安东尼.. 安东尼:JSON看起来很好的HTML。我认为这是一个HandsOnTables问题,因为如果JSON搞砸了,表格可以完美呈现,而且不会。 – johnz