Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Retener Scroll en girdlayout (http://www.forosdelweb.com/f29/retener-scroll-girdlayout-232285/)

jose_d 17/09/2004 16:08

Retener Scroll en girdlayout
 
hola como van

tengo un gridlayout que tiene la propiedad autoscroll como le hago para mantener la posicion en un postback gracias

RootK 17/09/2004 16:53

Checa las FAQ´S.

Aqui está..

http://www.forosdelweb.com/showthrea...=15#post710826


Salu2 :cool:

jose_d 18/09/2004 08:39

Hola RootK como vas...
Que pena con vos pero ya probe con lo que esta en las Faqs el punto es que el StaticPostBackPosition me retiene el scroll de la pagina pero no el de los gridlayout. Entonces cuando sucede el postback este me mantiene el scroll de la pagina mas no de los grid. La propiedad de los grid es Overflow = auto.
Espero me puedan ayudar...
de antemano Gracias :adios:

jose_d 22/09/2004 09:24

Ya he podido solucionar mi problema
 
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 :adios:

RootK 22/09/2004 09:29

Cool.. :arriba: porque no lo haces parte de las faq´s..?? :cool:

Salu2

azche_1 21/12/2007 13:03

Re: Ya he podido solucionar mi problema
 
Cita:

Iniciado por jose_d (Mensaje 809503)
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 :adios:


encontre otra solucion tambien con la propiedad

MaintainScrollPositionOnPostback="true"


La zona horaria es GMT -6. Ahora son las 09:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.