【问题标题】:Kendo Grid jumps to top after onSave剑道网格在 onSave 后跳到顶部
【发布时间】:2017-10-24 21:07:36
【问题描述】:

我有一个需要设置的网格:

scrollable: {
    virtual: true
},

当用户编辑单元格然后更新(或 onSave(e))他们的更改。网格重置回页面顶部。我不知道为什么。用户每次尝试更改单元格内容时都会失去位置。

当我制作时

scrollable: false, 

它保持不变。我认为这是 Telerik Kendo 中的一个巨大错误。有没有人知道如何在保存更改后留在网格上?

更新

这个问题只出现在 IE 11 中。不幸的是我的客户端只能使用 IE11。

【问题讨论】:

  • 您是否在事件处理程序(单击保存时执行的函数)中尝试过event.preventDefault()

标签: javascript telerik kendo-grid


【解决方案1】:

我认为这对你有用:

使用GridViewRowInfo 获取所选行的行信息并将滚动设置为您的自定义行和列。

if (this.radGridView1.SelectedCells.Count > 0)
{
    GridViewRowInfo row = this.radGridView1.SelectedCells[0].RowInfo;
    radGridView1.TableElement.ScrollTo(row.Index, 0);
}

【讨论】:

    【解决方案2】:

    答案是在绑定之前保存当前位置。

    onGridBinding(){
        _currentLeftPosition = $(".k-virtual-scrollable-wrap").scrollLeft();
    }
    
    in onGridBound(){
        //Go Back to previous position
        var vs = mainGrid.wrapper.find('.k-grid-content').data('kendoVirtualScrollable');
        var scrollGridContentOffsetTop = mainGrid.wrapper.find('.k-grid-content').offset().top;
        var selectContentOffsetTop = mainGrid.content.offset().top;
        var distanceTop = selectContentOffsetTop - scrollGridContentOffsetTop;
        var scrollTop = vs.verticalScrollbar.scrollTop();
        $("#mainGrid div.k-virtual-scrollable-wrap").animate({scrollTop: distanceTop + scrollTop,scrollLeft: _currentLeftPosition}, 0);
        $("#mainGrid div.k-scrollbar-vertical").animate({scrollTop: distanceTop + scrollTop}, 0);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多