web2py的SQLFORM.grid动态设置paginate每页展示数量

web2py的SQLFORM.grid构造时,可以在 paginate 设置 每页显示条数,如何让用前台动态的设置,假如我们有个 页面function叫做 index

def index():
   grid = SQLFORM.grid(...
                   paginate = 20,
                       ...)
   return locals()

要实现动态设置paginate,就把这个参数放在session中

def index():
    if not session.Paginate:
         paginate = 20
    else:
        paginate = session.Paginate
        
    grid = SQLFORM.grid(...
                   paginate = paginate,
                       ...)
    return locals()

增加一个 另外一个function,设置

def setPaginate():
    if request.args[0] not in ['10','20','50','100']:
        return
    else:
        session.paginate = int(request.args[0])
    return

在view 的html里面增加:

<div >
<form action="" style="float:right">
<select name="Paginate" οnchange="setPaginate(this.value)" style="font-family:Verdana, Arial, Helvetica, sans-serif;">
<option value=""></option>
<option value="/10">每页10条</option>
<option value="/20">每页20条</option>
<option value="/50">每页50条</option>
<option value="/100">每页100条</option>
</select>
</form>
 <p style="float:right">当前每页显示{{=Paginate_upload}}条,设置每页显示数量:</p>
</div>
<script>
function setPaginate(str) {
    var xmlhttp;
    if (str == "") {return;}
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "/setPaginate" + str, true);
    xmlhttp.send();
    location.reload();
}
</script>

看看最终效果

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值