在不涉及不必要的细节的情况下,我将尝试解释我遇到的基本问题。我正在评估Kendo-UI Web并使用Grid。
我根据具有扩展或未扩展细节行的网格进行一些页面列重新调整大小。
我注意到的行为是每行触发第一次“detailExpand”事件,你可以看到在我的代码详细运行之前使用新元素更新的DOM。我猜这实际上只是detailInit正在运行,因为它是第一次扩展行。然而,在那之后,如果我再次展开该行,则在行显示之前首先运行detailExpand事件。 (代码看起来好像只是做一个.show()..这意味着我无法正确计算高度的变化。
与detailCollapse相同。事件代码在隐藏详细信息行之前触发。所以我最终得到的额外空间等于细节行的大小。如果它们总是相同的大小,这不会是一个问题,我可以根据它来预测大小并减少或增长。事实并非如此。
所以要把它煮熟,如果我可以简单地有一个AfterRowExpanded事件,它会解决所有问题。
我觉得我可以很容易地自定义kendo ui JS,但是我必须重新最小化JS和所有这些......有什么想法吗?
答案 0 :(得分:0)
使用最新版本时,似乎在详细信息行完成展开时会触发 detailExpand ,但在隐藏详细信息行之前会执行 detailCollapse 。
作为一种解决方法,我建议你在setTimeout的帮助下减慢逻辑的执行速度而不指定毫秒(它将在实际隐藏/显示行之后执行)
e.g。
$('#grid').data().kendoGrid.bind('detailCollapse',function(e){
setTimeout(function(){
//code goes here
})
})