Kendo onSave后Grid跳到顶部
Kendo Grid jumps to top after onSave
我有一个网格需要设置:
scrollable: {
virtual: true
},
当用户编辑单元格然后更新(或 onSave(e))他们的更改。网格重置回页面顶部。我不知道为什么。用户每次尝试更改单元格内容时都会丢失位置。
当我做的时候
scrollable: false,
它留在原地。我认为这是 Telerik Kendo 中的一个巨大错误。有没有人知道如何在保存更改后留在网格上?
更新
这个问题只出现在 IE 11 中。不幸的是我的客户端只能使用 IE11。
我认为这对你有用:
使用GridViewRowInfo
获取所选行的行信息并将滚动设置为您的自定义行和列。
if (this.radGridView1.SelectedCells.Count > 0)
{
GridViewRowInfo row = this.radGridView1.SelectedCells[0].RowInfo;
radGridView1.TableElement.ScrollTo(row.Index, 0);
}
答案是在绑定之前保存您当前的位置。
在
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);
}
我有一个网格需要设置:
scrollable: {
virtual: true
},
当用户编辑单元格然后更新(或 onSave(e))他们的更改。网格重置回页面顶部。我不知道为什么。用户每次尝试更改单元格内容时都会丢失位置。
当我做的时候
scrollable: false,
它留在原地。我认为这是 Telerik Kendo 中的一个巨大错误。有没有人知道如何在保存更改后留在网格上?
更新
这个问题只出现在 IE 11 中。不幸的是我的客户端只能使用 IE11。
我认为这对你有用:
使用GridViewRowInfo
获取所选行的行信息并将滚动设置为您的自定义行和列。
if (this.radGridView1.SelectedCells.Count > 0)
{
GridViewRowInfo row = this.radGridView1.SelectedCells[0].RowInfo;
radGridView1.TableElement.ScrollTo(row.Index, 0);
}
答案是在绑定之前保存您当前的位置。
在
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);
}