web2py 如何在另一个动作/视图上链接网格



我想使用网格小部件来浏览数据库,然后继续另一个可以计算所选行的操作/视图

我目前导出网格结果,将其上传到服务器,然后手动启动读取导出文件的新操作/视图..这有点麻烦

我已经查看了可选属性,它确实允许对所选行执行一些操作,但必须手动选择它们,并且用户将保持在同一网格视图中。

在web2py中支持这样的功能吗?

当您使用SQLFORM.grid执行搜索时,会将一个keywords参数添加到 URL 查询字符串中,该参数可以通过request.vars.keywords在控制器中提取。在内部,网格使用SQLFORM.build_query(fields, keywords)将关键字转换为 DAL 查询。因此,重建网格使用的相同查询的策略是将request.vars.keywords的值存储在session中,然后将该值传递给SQLFORM.build_query()。例如:

def mygrid():
session.grid_keywords = request.vars.keywords
return dict(grid=SQLFORM.grid(db.mytable))
def other_action():
dbset = db(db.mytable)
if session.grid_keywords:
dbset = dbset(SQLFORM.build_query(db.mytable, session.grid_keywords))
records = dbset.select()
return dict(records=records)

然后在mygrid页面中,您可以包含一个指向other_action页面的按钮/链接,在那里选择records将与网格中当前存在的记录匹配(注意,网格分页,因此它只显示记录的子集,但records在上面的other_action中将选择所有匹配的记录,没有分页, 这大概是你想要的(。

最新更新