在LOAD组件中导航

时间:2017-11-07 08:44:57

标签: web2py

我使用SQLFORM创建了一个表单,并在视图中插入了一个LOAD组件,该组件包含另一个SQLFORM,它通过填写和提交表单来显示正在填充的表的内容。

看起来像是:
- 形式字段1
- 形式领域2
....
-component
- 形式按钮1

这很有效,但是,当组件显示的条目数超过20时,将创建一个新页面,并且箭头似乎在页面之间导航。
问题是,如果我使用箭头转到下一页,我将被重定向到包含组件的SQLFORM的另一个网页。

在停留在表单上时,有没有办法在页面之间导航?

我可以尝试通过将 paginate 值设置为高于20的值来规避问题,但在某些时候它仍然会有问题。

代码的合成版本:

查看:

{{response.files.append('http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js')}}
    {{extend 'layout.html'}}

    {{=form.custom.begin}}
    {{=LOAD('default','intermediate.load', ajax=True, target="intermediate")}}
    {{=form.custom.submit}}
    {{=form.custom.end}}
    <script type="text/javascript">
        $(document).ready(function(){
            $('#field_1').change( function(){
                ajax('reload_intermediate', ['field_1'], ':eval');
            });
        });
    </script>  

控制器:

def form_1():
    form = SQLFORM.factory(Field('field_1'),
    Field('field_2'),
    buttons = [INPUT(_type='button',_id='btn_add',_value ='Do')])
    return dict(form=form)

def reload_intermediate():
        value = request.vars.field_1
        return '''$("#intermediate").load('intermediate.load?value={}');'''.format(value)

组件:

{{  form_results_grid = SQLFORM.grid(db(db.Table_1.id == request.vars.value),create=False,searchable=False, details=False, deletable=False, editable=False, csv=False, user_signature=False, maxtextlength=100)
}}
{{=form_results_grid}}

此处称为 intermediate 的组件运行良好,但不允许在页面之间导航而不会重定向到组件本身,从而使页面保留表单。

0 个答案:

没有答案