Ver Mensaje Individual
  #6 (permalink)  
Antiguo 21/12/2007, 13:03
azche_1
 
Fecha de Ingreso: diciembre-2007
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Ya he podido solucionar mi problema

Cita:
Iniciado por jose_d Ver Mensaje
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"