21/12/2007, 13:03
|
| | Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 11 meses Puntos: 0 | |
Re: Ya he podido solucionar mi problema Cita:
Iniciado por jose_d Buscando con el maestro google encontre este codigo que me permite mantener el scroll en un gridlayout panel (Div)
esto como se logra creando un Js con este codigo
Código:
var __oScrollPos;
window.onload=InitScrollPos;
function InitScrollPos(){
__oScrollPos = document.all['__SCROLLPOSITIONS'];
if (__oScrollPos!=undefined){
LoadScrollPos();
basePostBack = __doPostBack;
__doPostBack = MyPostBack;
document.forms[0].onsubmit = MyPostBackFrm;
}
}
function MyPostBackFrm(){
SaveScrollPos();
document.forms[0].submit();
}
function MyPostBack(eventTarget, eventArgument){
SaveScrollPos();
basePostBack(eventTarget, eventArgument);
}
function SaveScrollPos(){
var oNodeList = document.body.getElementsByTagName('DIV');
var sPos = '';
for (i=0;i<oNodeList.length;i++){
oDiv = oNodeList[i];
if (oDiv.scrollTop>0) {
if (sPos.length>0) sPos = sPos + ',';
sPos=sPos + oDiv.id + ':' + oDiv.scrollTop;
}
}
__oScrollPos.value=sPos;
}
function LoadScrollPos(){
if (__oScrollPos.value=='') return;
var sPos = new String();
sPos = __oScrollPos.value
sItems = sPos.split(',');
for (i=0;i<sItems.length;i++){
var sItem = new String();
sItem = sItems[i];
var iSplit = sItem.indexOf(":",0);
sDiv = sItem.substring(0,iSplit);
sPos = sItem.substring(iSplit+1,sItem.length);
try {
document.all[sDiv].scrollTop=sPos;
} catch(e) { }
}
}
y en el load de la pagina colocas lo siguiente
Código:
RegisterStartupScript("ScrollPositions", "<script language=javascript src='Nombreyruta.js'></script>")
RegisterHiddenField("__SCROLLPOSITIONS", Request("__SCROLLPOSITIONS"))
Espero que este codigo les sea de utilidad a todos
encontre otra solucion tambien con la propiedad
MaintainScrollPositionOnPostback="true" |