jQuery MiniUI

标题: 自动高度再去后编辑,编辑完了滚动条自动跑到顶部 [打印本页]

作者: s209392599    时间: 2019-12-20 11:24:38     标题: 自动高度再去后编辑,编辑完了滚动条自动跑到顶部

[attach]12641[/attach]
前置条件:style="width:700px;height:auto;max-height:280px;"
如附件:
1.点击--动态列1的配置方式--先添加数据

2.选在位于底部的第19条数据,给上备注内容后滚动条自动回到顶部

问题:
1.有没有更好的写法来让表格有更高的自适应高度,达到一定高度后出滚动条
2.本地排查是因为设置height:auto;max-height:280px;而不是直接height:280px;而导致编辑后滚动条问题
结合这两种能否有一个方案,还是说要进行取舍?


作者: dforce    时间: 2019-12-20 14:00:29

建议使用setHeight来动态设置高度。
作者: zhengys    时间: 2019-12-26 10:34:17

可以在页面加载完后,根据当前屏幕大小来设置表格高度
作者: s209392599    时间: 2019-12-27 13:23:50

本帖最后由 s209392599 于 2019-12-27 14:12 编辑
dforce 发表于 2019-12-20 14:00
建议使用setHeight来动态设置高度。

表格内容随时增删改会随时改变表格高度,表格里面内容也是自适应高度的,也就是说编辑后也可能影响表格高度.放在哪里来写控制表格高度的比较好呢?比如表格高度最高可显示500px
现在用的是:
  1. currentWorkPlanTable.on("resize", function (e) {
  2.         var resizeHeight = e.sender.height;
  3. currentWorkPlanTable.setHeight(resizeHeight)
  4. });
复制代码

还有一个问题是:怎么设置让allowResize只能上下调整




作者: dforce    时间: 2019-12-27 14:38:17

s209392599 发表于 2019-12-27 13:23
表格内容随时增删改会随时改变表格高度,表格里面内容也是自适应高度的,也就是说编辑后也可能影响表格高 ...

如果是url加载,可以监听表格的load事件
grid.on("load",function(e){
    var length=e.sender.getData().length    //表格所有行树
     if(length<10){
         grid.setHeight("auto");
     }else{
          grid.setHeight("500px");
    }
})
作者: s209392599    时间: 2019-12-27 17:28:58

dforce 发表于 2019-12-27 14:38
如果是url加载,可以监听表格的load事件
grid.on("load",function(e){
    var length=e.sender.getData( ...

是通过loadData的方法进行数据加载的,而且随时都有增删改查,表格在高度上是否有滚动条应该是冬天的,有没有办法能做到
作者: dforce    时间: 2019-12-27 17:42:50

s209392599 发表于 2019-12-27 17:28
是通过loadData的方法进行数据加载的,而且随时都有增删改查,表格在高度上是否有滚动条应该是冬天的,有 ...

grid._dataSource.on("datachanged", function (e) {
            
  })
作者: s209392599    时间: 2019-12-30 10:34:45

本帖最后由 s209392599 于 2019-12-30 10:36 编辑
dforce 发表于 2019-12-27 17:42
grid._dataSource.on("datachanged", function (e) {
            
  })
目前使用的是下面的方法,有没有在这时候获取表格内容区总高度的方法?

另外,有没有当前页面所有表格或者总体页面全局配置的方法?
  1. currentWorkPlanTable._dataSource.on("datachanged", function (e) {
  2.     var len = e.sender.dataview.length;
  3.     if(len>=10){
  4.         currentWorkPlanTable.setHeight(450);
  5.     }else{
  6.         currentWorkPlanTable.setHeight('auto');
  7.     }
  8. })
复制代码

作者: felt    时间: 2019-12-30 13:26:52

s209392599 发表于 2019-12-30 10:34
目前使用的是下面的方法,有没有在这时候获取表格内容区总高度的方法?

另外,有没有当前页面所有表格或者 ...
  1. (function () {
  2.     var inited = false;
  3.     function init(){
  4.         var grid = this;
  5.         grid._dataSource.on("datachanged", function(e){
  6.             
  7.         });
  8.     }

  9.     var set = mini.DataGrid.prototype.set;
  10.     mini.DataGrid.prototype.set = function(){
  11.         if(!inited){
  12.             init.call(this);
  13.             inited = true;
  14.         }
  15.         set.apply(this, arguments);
  16.     }
  17. })();
复制代码

作者: s209392599    时间: 2019-12-30 15:15:28

felt 发表于 2019-12-30 13:26

试了下把这段代码卸载页面的顶部或者底部或者插件的最后面,页面上多个table只有第一个生效
作者: felt    时间: 2019-12-30 16:44:54

s209392599 发表于 2019-12-30 15:15
试了下把这段代码卸载页面的顶部或者底部或者插件的最后面,页面上多个table只有第一个生效 ...
  1. (function () {
  2.             function init() {
  3.                 var grid = this;

  4.                 grid._dataSource.on("datachanged", function (e) {
  5.                     
  6.                 });
  7.             }

  8.             var set = mini.DataGrid.prototype.set;
  9.             mini.DataGrid.prototype.set = function () {
  10.                init.call(this);
  11.          
  12.                 set.apply(this, arguments);

  13.             }
  14.         })();
复制代码





欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2