Forum


18:56

18/11/2009

Hello!
Is it possible to preserve the current scroll position of the user after a ReloadGrid was triggered?
Explanation: I'm using the grid with automatic update (ReloadGrid) every 5 seconds with 100 rows but not all are visible, so there is a vertical scroll bar. But when the user scrolls to the bottom his scrollbar is set to the top again after every ReloadGrid call.
Is there a solution to keep the scroll position or to reset the scroll position afterwards?
Kind regards,
Klaus.
11:11

18/11/2009

I've just found a simple solution for that problem on my own by extending the selectionPreserver function:
var p = ts.p;
var sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;
var left = ts.grid.bDiv.scrollLeft;
var complete = p.gridComplete;
// FIX to keep scroll position on reload - store old scroll position
var oldScrollTop = $(ts.grid.bDiv)[0].scrollTop;
p.gridComplete = function() {
p.selrow = null;
p.selarrrow = [];
if(p.multiselect && sra && sra.length>0) {
for(var i=0;i<sra.length;i++){
if (sra[i] != sr) {
$(ts).jqGrid("setSelection",sra[i],false);
}
}
}
if (sr) {
$(ts).jqGrid("setSelection",sr,false);
}
ts.grid.bDiv.scrollLeft = left;
// FIX to keep scroll position on reload - restore old scroll position
if(oldScrollTop >= 0) {
$(ts.grid.bDiv)[0].scrollTop = oldScrollTop;
}
p.gridComplete = complete;
if (p.gridComplete) {
complete();
}
};
}
Most Users Ever Online: 715
Currently Online:
66 Guest(s)
Currently Browsing this Page:
1 Guest(s)
Top Posters:
OlegK: 1255
markw65: 179
kobruleht: 144
phicarre: 132
YamilBracho: 124
Renso: 118
Member Stats:
Guest Posters: 447
Members: 11373
Moderators: 2
Admins: 1
Forum Stats:
Groups: 1
Forums: 8
Topics: 10592
Posts: 31289
Newest Members:
, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.comModerators: tony: 7721, Rumen[Trirand]: 81
Administrators: admin: 66