【问题标题】:Kendo UI Web Grid. Can I trigger an AfterRowExpanded Event?剑道 UI 网络网格。我可以触发 AfterRowExpanded 事件吗?
【发布时间】:2012-11-19 20:23:26
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: kendo-ui


    【解决方案1】:

    在我看来,最新版本的 detailExpand 是在详细信息行完成展开时触发的,但是 detailCollapse 在详细信息行隐藏之前执行。

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

    例如

    $('#grid').data().kendoGrid.bind('detailCollapse',function(e){
        setTimeout(function(){
           //code goes here
        })
    })
    

    【讨论】:

    • 成功了!我曾尝试过 setTimeout,但我指定了 MS……为什么当您不指定 MS 时它会起作用?非常感谢您的帮助!!!
    • 您是否尝试给出 mooooore 毫秒? :)
    猜你喜欢
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 2013-09-24
    • 2015-11-11
    相关资源
    最近更新 更多