【问题标题】:HandsOnTable context menu: how to make it work with web2py data?HandsOnTable 上下文菜单:如何使其与 web2py 数据一起使用?
【发布时间】:2016-06-22 17:41:55
【问题描述】:

HandsOnTable 的 contextMenu 在与 web2py 一起使用时似乎有问题。如果数据源是脚本中的数组,则上下文菜单有效;如果数据源是其他任何东西 - 即来自 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 是否看起来不正确。
  • 你可以尝试一下 contextMenu: true
  • 感谢您的回复,Anthony.. Anthony:JSON 在 HTML 中看起来不错。我相信这是一个 HandsOnTables 问题,因为表格可以完美呈现,而且我认为如果 JSON 搞砸了就不会。
  • 谢谢,马祖。我使用了两个上下文菜单行:contextmenu = truecontextmenu = ["row_above","row_below","remove_row"]。在这两种情况下,当数据在 javascript 函数中指定为数组时,菜单可以正常工作,但是当通过 web2py.我用 data = {{=XML(data.json())}} 翻译 web2py 数组

标签: web2py handsontable


【解决方案1】:

问题与 web2py 或 HandsOnTables 无关;这是我对 maxRows 如何工作的误解。我将 maxRows 设置为一个值,并且数据集的行数比 maxrows 值多。因此,当然,不能向表中添加更多行,并且 add_row 函数不起作用。通过删除 maxrows 值,它可以正常工作。我的错...

【讨论】:

    猜你喜欢
    • 2020-01-20
    • 2016-02-08
    • 2016-04-14
    • 1970-01-01
    • 2022-12-06
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多