0

在不涉及不必要的细节的情况下,我将尝试解释我遇到的基本问题。我正在评估 Kendo-UI Web 并使用 Grid。

我根据是否扩展了详细信息行的网格来重新调整页面列的大小。

我注意到的行为是每行第一次触发“detailExpand”事件,您可以在我的代码详细运行之前看到 DOM 正在使用新元素进行更新。我猜这实际上只是在运行 detailInit,因为这是第一次扩展行。然而,在那之后,如果我再次展开该行,detailExpand 事件首先运行,然后该行显示。(代码看起来好像只是在做一个 .show().. 这意味着我无法正确计算高度的变化。

与 detailCollapse 相同。事件代码在详细信息行被隐藏之前触发。所以我最终得到了等于细节行大小的额外空间。如果它们总是相同的大小,这不会是一个问题,我可以预测大小并在此基础上减少或增长。事实并非如此。

所以归结为,如果我可以简单地拥有一个 AfterRowExpanded 事件,它会解决所有问题。

我觉得我可以很容易地自定义 kendo ui JS,但是我必须重新最小化 JS 等等。有什么想法吗?

4

1 回答 1

0

对我来说,最新版本似乎在详细信息行完成扩展时触发了 detailExpand,但是在隐藏详细信息行之前执行了detailCollapse

作为一种解决方法,我建议您在不指定毫秒的情况下借助 setTimeout 减慢逻辑的执行速度(它将在该行实际隐藏/显示后立即执行)

例如

$('#grid').data().kendoGrid.bind('detailCollapse',function(e){
    setTimeout(function(){
       //code goes here
    })
})
于 2012-11-20T19:31:24.973 回答