这是数据绑定后Kendo网格中的最后一个事件

时间:2016-05-03 12:29:35

标签: javascript jquery javascript-events kendo-ui kendo-grid

我正在研究一个剑道网格,在其数据绑定事件中,我调用了一个函数来检查每个行的第二个块中的值是否大于第一个块。如果为true,那么我通过添加一个类来改变文本内部的颜色。 但是,问题是当我在浏览器上看到时,添加的类最终会消失。 如果有两行有错误,我正在编辑的第一行不会保留该类,但后面的那些行保持不错。

 dataBound: configureGridProperties,

dataBound的代码是

    function configureGridProperties(e) {
    try {
        if (true) {
            $('#grid .k-grid-content tr[role=row]').each(function (i) {
                var sh = $(this).find('.sh').text();
                var sm = $(this).find('.sm').text()
                var eh = $(this).find('.eh').text()
                var em = $(this).find('.em').text()
                var startMin = parseInt(sh) * 60 + parseInt(sm);
                var endMin = parseInt(eh) * 60 + parseInt(em);
                if (startMin > endMin) {
                    showOutputExplicitly('Start time cannot be less than end time');


                  $(this).find('.sh, .sm,.eh,.em').addClass('timeError');
                    $('div.k-grid-pager').hide();

                    errorInTime = false;
                }
                else {
                       $(this).find('.sh, .sm,.eh,.em').removeClass('timeError');                      
                    if (!$('.timeError').length > 0) {
                        $('div.k-grid-pager').show();
                        hideErrorMsgSlow();
                        errorInTime = true;
                    }
                }
            });
        }          
        return false;
    } catch (e) {
    }

pic的情况。 >

enter image description here

我刚刚编辑的第二行(开始时间23)并没有持有colorChange类,但早期的那些持有。在dataBound事件之后是否还有其他事件发生。

1 个答案:

答案 0 :(得分:1)

当调用dataBound时,网格html元素不会使用新数据进行渲染。我知道这很奇怪,但我不知道除了使用setTimeout来完成这项工作之外的其他方式。所以这可行:

dataBound: function(e) {
    window.setTimeout(configureGridProperties.bind(this, e), 1);
}

参考: