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 |
| ||||
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" |