将一列复选框添加到SQLFORM.grid

时间:2013-08-05 16:19:41

标签: web2py

我想要一个网格,其中第一列不包含标题,并且包含复选框,最后几列是链接列(使用'links'参数生成),并生成中间列来自带有'fields'参数的数据库字段。生成复选框列的最佳方法是什么?谢谢。

1 个答案:

答案 0 :(得分:2)

grid = SQLFORM.grid(..., selectable=lambda ids: [do something with record ids])

这将在左侧添加一列复选框,在网格底部添加一个“提交”按钮。单击“提交”按钮时,生成网格的操作将收到已检查记录的记录ID列表,这些ID将传递给“可选”参数(该参数应为可调用的参数列表)记录ID,如上所述。)

您可以通过将列表/元组列表作为“可选”参数传递来控制提交按钮的标签,甚至添加其他函数以应用于已检查的记录:

grid = SQLFORM.grid(...,
    selectable=[('Action 1', lambda ids: [do action 1 with ids], 'class1'),
                ('Action 2', lambda ids: [do action 2 with ids], 'class2')])

在这种情况下,在网格的底部,您将获得标记为“操作1”和“操作2”的按钮,并将根据单击的按钮执行相应的操作。每个元组中的第三个元素是一个可选的CSS类,它将被添加到该操作的button元素中。