如何在 web2py 中更改 smartgrid 组件的查看/编辑页面

发布于 2024-12-15 23:13:11 字数 315 浏览 5 评论 0原文

web2py中的Smartgrid组件非常强大。我想知道是否可以在智能网格的“查看/编辑”页面中添加任何其他标记。

通常,在 web2py 中我们需要创建一个与控制器中的函数相对应的视图 html 文件。智能电网的问题在于控制器功能是由组件自动定义的。

例如,单击 smartgrid 中的“查看”按钮将转到以下 url:

default/index/dataset/view/dataset/1

现在,我的问题是我是否可以为此页面创建一个自定义视图 html 文件,该文件可以包含 smartgrid 以外的内容?

Smartgrid component in web2py is very powerful. I wonder if it is possible to add any additional markup into the View/Edit pages of the smartgrid.

Normall, in web2py we need to create a view html file corresponding to a function in the controller. The problem with smartgrid is that the controller functions are automatically defined by the component.

For example, clicking the View button in a smartgrid goes to the following url:

default/index/dataset/view/dataset/1

Now, my question is if I can create a custom view html file for this page that can contain things other than smartgrid?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小瓶盖 2024-12-22 23:13:11

智能电网组件不会自动定义控制器功能。相反,用于查看、编辑等的链接只是将附加参数传递给定义智能网格的同一函数(例如,在上面的 URL 中,dataset/view/dataset/1 都是参数)到 index 函数,这可能是定义您的智能网格的地方)。

你至少有两个选择。首先,您可以向 index.html 视图添加条件逻辑,例如:

{{if 'view' in request.args:}}
[special code for viewing a record]
{{else:}}
[regular grid view code]
{{pass}}

或者,您可以在控制器函数中指定不同的视图,例如:

def index():
    if 'view' in request.args:
        response.view = 'default/view_record.html'
    [rest of index code]

The smartgrid component is not automatically defining controller functions. Rather, the links for view, edit, etc. are simply passing additional arguments to the same function where the smartgrid is defined (e.g., in the above URL, dataset/view/dataset/1 are all arguments to the index function, which presumably is where your smartgrid is defined).

You have at least two options. First, you could add conditional logic to the index.html view, such as:

{{if 'view' in request.args:}}
[special code for viewing a record]
{{else:}}
[regular grid view code]
{{pass}}

Alternatively, you could specify a different view from within the controller function, such as:

def index():
    if 'view' in request.args:
        response.view = 'default/view_record.html'
    [rest of index code]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文