Git Product home page Git Product logo

Comments (17)

kitemao avatar kitemao commented on July 22, 2024

新table是否会保持列的宽度? 如果保持了有清的方法么?

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

新table是否会保持列的宽度? 如果保持了有清的方法么?

我理解你说的是拖拽列宽之后保持宽度,现在是会保持列宽。

只要不修改fields 和 select,列宽都会保持不变,反之则清掉重来。

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

哦 还有一点,当窗口resize的时候也会对列宽进行重新计算。

from esui.

kitemao avatar kitemao commented on July 22, 2024

嗯好,要的就是这效果

from esui.

musicode avatar musicode commented on July 22, 2024

我使用时发现一个问题,表格创建完后,会给主元素设置一个宽度,这样的问题是,如果表格的父容器改变宽度,宽度没法自适应

from esui.

otakustay avatar otakustay commented on July 22, 2024

Table的设计就是如此的,因为每一列的宽度都要计算出来,所以必须有一个固定的宽度,如果容器宽度变了得重新渲染一下,直接调用repaint()应该可以,有没有更好的办法请 @wurongyao 解答下吧

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

总有些列要设置列宽,要嘛用百分比,要嘛用像素。
如果用像素,就要给主元素设置宽度,不允许宽度自适应。
如果用百分比,则不设置宽度,允许自适应。

但设定列宽用百分比并没有太大意义,因为宽度实际上是会改变的,只是相对于Table的比例不变而已。minWidth更往往是根据像素来设置的。
所以我觉得按照百分比设置列宽来实现自适应不太合理。

而且Table已经有自适应Resize处理,当window resize的时候会自动改变Table以及所有列的宽度。

非程序指定的父容器宽度改变,应该也只有window resize的时候了(可能还有别的情况,欢迎补充)。
其他时候应该都是程序主动改变父容器宽度的(或者程序可控,可预知的),
这时候,调用一下table的repaint函数就可以做到。

不过repaint等于重新渲染一次Table,消耗大,而且选中项,以及拖拽列宽,展开子列等操作效果都将消失,
我觉得可以给Table增加一个width属性,通过改变这个值让table去自适应,而不再次渲染Table。

from esui.

otakustay avatar otakustay commented on July 22, 2024

我觉得可以给Table增加一个width属性,通过改变这个值让table去自适应,而不再次渲染Table。

我觉得这个不错,是否可以在repaint中增加一下改变width时的逻辑,这样可以通过set('width', xxx)来实现适应的效果。

再者,是否有必要提供一个adjustWidth()方法,自动判断一下容器的宽度来给自己做一个set('width', xxx)的工作,这样显得API上更容易被接受

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

我觉得这个不错,是否可以在repaint中增加一下改变width时的逻辑,这样可以通过set('width', xxx)来实现适应的效果。

再者,是否有必要提供一个adjustWidth()方法,自动判断一下容器的宽度来给自己做一个set('width', xxx)的工作,这样显得API上更容易被接受

嗯,得在repaint中增加一下改变width时的逻辑。
adjustWidth也是个好主意。

@zhujl 觉得这样是否可以接受?

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

已在版本: b2009be 中实现adjustWidth及width改变逻辑。

from esui.

musicode avatar musicode commented on July 22, 2024

@wurongyao 好的,我去试试

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

bodyHeight这个东西,@zhujl 在使用的时候发现数据少的时候有点怪,表格body的高度超过了行的总高度。
如果需求是无论如何都维持Table整体高度,这是可以的,但是看起来很怪。
这种需求不知道多不多,没有数据时表格就矮一点应该可以理解。

我现在觉得bodyHeight似乎不需要,或者说它应该是bodyMaxHeight。
只有当行总高度超过tbody高度的时候,这个bodyheight才起作用。

@errorrik @otakustay @kitemao 如果有空的话一起看下这个做法是否合理。

from esui.

otakustay avatar otakustay commented on July 22, 2024

我倒认为bodyHeightbodyMaxHeight都没用,表头固定都已经有了,想象不了啥时候要求表格有最大高度超出了弄个滚动条

从另一个方面来说,指定表格高度或最大高度的系统设计是无力吐嘈的,一个连通过控制数据条数来控制表格高度使之在友好范围内都做不到的系统,有什么上线的价值

from esui.

kitemao avatar kitemao commented on July 22, 2024

这边有这种场景,在一个dialog里面有一个table,这个dialog是有固定高度的(至少在屏幕内),table里的数据有300多条,这种情况还是body滚动比较好,就需要bodyHeight或bodyMaxHeight。

感觉设置bodyHeight由使用者决定,正常情况下别设置就可以了吧

from esui.

otakustay avatar otakustay commented on July 22, 2024

这种情况下为啥不是Dialog的body来滚动,而是用table呢……为了表头固定吗?

from esui.

kitemao avatar kitemao commented on July 22, 2024

嗯,表头固定,而且表格上面还有许多筛选项和搜索框

from esui.

wurongyao avatar wurongyao commented on July 22, 2024

嗯 bodyHeight 更多的时候应该是为了让表格上放的筛选项和搜索框固定。
就先保留吧,我先把它改成bodyMaxHeight,bodyHeight用起来太奇怪了。

from esui.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.