数据表格where动态传参问题

提问 已结 12 427
zqwlxy111
zqwlxy111 2019-5-21
悬赏:50飞吻
版本:layui 2.4.5 浏览器:Chrome 73
各位大佬请问下数据表格的接口不是通过page作为查询条件而是通过别的字段作为查询条件,我在where添加了这个但是无法动态赋值,点击第2页第3页翻页的时候数据没反应,请问应该怎么解决?后台通过start=0&limit=50作为条件,第二页就是start=50&limit=50查询的是50-100之间的数据。
回帖
  • @zqwlxy111 改源码吧,这需求。源码中找到ajax那里,有传递page和limit参数,你只要对把ajax传参名page改成start,page传值改成page*limit,差不多这样,要是说错了的话你跟我说下emmm
    0 回复
  • @zqwlxy111 看了一下beforeSend回调的,里面无法得到data,所以前面说的方法估计是走不通的,奇怪,记得以前是可以得到的呀,不过是很早很早之前弄过,后面是了layui自带的jquery的版本他的beforeSend是无法得到this.data的headers可以,不知道是新版本都不行了还是,有空试试看;剩下的就是修改源码了,不过也不建议你一刀切,都改成start的,还是要模拟ajax的思路,新增一个layui的table的beforeSend的回调,翻一下之前的项目中关于这块的处理

    然后需要修改的table里面加入这个回调处理:
    1 回复
  • request: {pageName: 'pageName',limitName: 'limitName'},
    0 回复
  • zqwlxy111
    2019-5-21
    @清风明月833 这不是修改默认接口参数的吗
    0 回复
  • 这个从layui的table的层面上来解决的话除非修改源码才行,它只能带页数和每页的limit,如果从本质上的来说他最终利用的是jquery的ajax,那么可以利用$.ajaxSetup去设置一个通用的beforeSend回调,在请求的中加入特殊的标志,比如在header加入pageCompute: true,在提交前回调中检测到有这个信息,就进行计算,根据page和limit得出你要的start和end然后放到data中,再去掉(delete)这个标志信息,后台就可以收到计算之后的信息了
    0 回复
  • zqwlxy111
    2019-5-21
    @岁月小偷 好复杂,能否写个例子??膜拜大佬
    0 回复
  • zqwlxy111
    2019-5-21
    @哑巴湖大大水怪 改了确实是可以,但是我不知道在哪里改他的传值,我只改了名字
    0 回复
  • @zqwlxy111 我看看哈哈哈哈,应该很简单呀
    0 回复
  • @zqwlxy111 r[l.limitName] = a.limit;看见没有,改成a.limit*e试试
    0 回复
  • 要a.limit*(e-1)才对,页码为1开始,数据库从0
    0 回复