剑道网格在onSave之后跃升至顶峰

时间:2017-10-24 21:07:36

标签: javascript telerik kendo-grid

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

scrollable: {
    virtual: true
},

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

当我做

scrollable: false, 

它保持不变。我认为这是Telerik Kendo的一个巨大错误。保存更改后有没有人想出如何在电网上保持原状?

更新

此问题仅发生在IE 11中。不幸的是我的客户端只能使用IE11。

2 个答案:

答案 0 :(得分:0)

我认为这适合你:

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

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

答案 1 :(得分:0)

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

in

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);
}