layui 在窗口加载时,表头没了

提问 未结
17 525
全世界誰倾听你
悬赏:20飞吻
版本: 2.4.5 浏览器:

如图
回帖
  • 0 回复
  • 铁子,没了有点难受啊
    0 回复
  • @全世界誰倾听你 就是在加载的过程中没有表头对吧,然后数据放回了才出来对吧?
    0 回复
  • @岁月小偷 是的啊[泪]
    0 回复
  • @全世界誰倾听你 这个嘛[偷笑] 是2.4+版本一个不太合理的设定,目前的表格的宽度,必须是执行了setColsWidth之后才会计算出来,但是呢!这个只有在数据返回了渲染完成了之后再执行的,so,加载的时候数据还没回来的时候要么就没有,要么就拧巴成一团,这个以前在帖子里面提到过哈: https://fly.layui.com/jie/33536/ 功能加强的第3条。可以给作者他们建议调整一下这块的逻辑,正常来说这个设置宽度的不应该这么晚才执行才是~
    0 回复
  • @岁月小偷 请问湿设置表格宽度还是列宽度
    0 回复
  • @全世界誰倾听你 不是这个问题,跟表格的列宽还有整体的宽度没关系的,这个是layui的table内部的执行逻辑决定的,它只有等到数据回来渲染出来了,之后再去设置他们的宽度,所以在第一次render的时候会出现在加载的过程中没有宽度,导致表头看不到或者拧成一团等到接口返回了内部执行了视图显然之后再调用done回调之前才去设置col的宽度,这时候看到的才是正常的我们设置的想要的效果,所以这个是内部的机制导致的,跟是否设置了表格的宽度,是否设置列宽度,是否设置自动宽度等这些是没啥关系的额。
    0 回复
  • @岁月小偷 麻烦问一下具体怎么解决?
    0 回复
  • @小陈x @全世界誰倾听你
    方法一:修改源码在ajax之前就执行一次setColsWidth,但是要注意,这个比较坑爹的就是它在里面会关掉了loading,所以执行之后还得执行一句that.loading();让设置了loading:true的会显示加载中的图标。(不太建议)
    方法二:引用我的tablePlug,我可以在这个plug里面就把这个问题给解决掉,

    添加之前的效果:

    修改之后的效果:

    当然这个tablePlug也需要在源码添加一句代码,但是这个的性价比要高很多,因为它还实现了很多其他的功能,详细可以看看我的最近的两个帖子里面的内容。(比较简易)

    当然如果考虑了觉得还是要用方法一的话可以在这里修改额:
    0 回复
  • 0 回复
  • @岁月小偷 哥我把你的码云上的 layuiTablePlug\layui\src 里的文件全部考入我的项目中但运行就报这样的错
    0 回复
  • @全世界誰倾听你 看看我那个帖子里面如何使用的第四第五点
    0 回复
  • 0 回复
  • 目录结构和你的码云是一样的
    0 回复
  • @全世界誰倾听你 嗯嗯,已经修改了还报错是么?有没有试试清缓存再试一下呢?
    0 回复
  • @岁月小偷 现在好了,但是会出现加载图标
    0 回复
  • @全世界誰倾听你 嗯嗯,这个是因为现在的加载的图标的逻辑,它就是现实在整个tableview的中间位置,如果一开始没有tbody的话它的位置对于我们来说就不对了,所以这个估计也得调整一下
    0 回复