hola como van
tengo un gridlayout que tiene la propiedad autoscroll como le hago para mantener la posicion en un postback gracias
| ||||
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| ||||
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
__________________ El leer te da el poder de mejorar |
| ||||
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:
y en el load de la pagina colocas lo siguiente 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) { } } }
Código:
Espero que este codigo les sea de utilidad a todos RegisterStartupScript("ScrollPositions", "<script language=javascript src='Nombreyruta.js'></script>") RegisterHiddenField("__SCROLLPOSITIONS", Request("__SCROLLPOSITIONS"))
__________________ El leer te da el poder de mejorar |
| ||||
Cool.. porque no lo haces parte de las faq´s..?? Salu2
__________________ Nadie roba nada ya que en la vida todo se paga . . . Exentrit - Soluciones SharePoint & Net |
| |||
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:
y en el load de la pagina colocas lo siguiente 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) { } } }
Código:
Espero que este codigo les sea de utilidad a todos RegisterStartupScript("ScrollPositions", "<script language=javascript src='Nombreyruta.js'></script>") RegisterHiddenField("__SCROLLPOSITIONS", Request("__SCROLLPOSITIONS")) encontre otra solucion tambien con la propiedad MaintainScrollPositionOnPostback="true" |