2010-11-15 5 views
0

I ilcontrôle utilisateur asp.net scroolIntoView fait défiler toute la page

J'utilise un contrôle utilisateur asp.net avec une arborescence. Lorsque je charge la page, je souhaite que le contrôle utilisateur apparaisse dans le nœud sélectionné dans l'arborescence. J'utilise la fonction js .ScrollIntoView (true). Mais ce défile la page entière (non seulement ce qui est à l'intérieur du contrôle de l'utilisateur)

voici mon code

//js 
function ScroolToFirstSelectedCheckBox(ctrlId) { 

    Event.observe(window, 'load', function() { 
     var tree = document.getElementById(ctrlId + '_MyTreeView'); 

     var checkBoxes = tree.getElementsByTagName("input"); 
     var checkBoxesCount = checkBoxes.length; 
     for (var i = 0; i < checkBoxesCount; i++) { 
      if (checkBoxes[i].checked) { 
       checkBoxes[i].scrollIntoView(true); 
       break; 
      } 
     } 
    } 
    ); 
} 

//aspx.cs 
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), 
              "ScrollToSelectedCheckBox", 
          string.Format("ScroolToFirstSelectedCheckBox('{0}')", 
          this.UniqueID), 
          true); 

Comment puis-je conserver la position de défilement de la page parent, mais continuer à définir la position de controll utilisateur où je vouloir?

TKS

Répondre

0

ok, tout simplement changé

checkBoxes[i].scrollIntoView(true); 

avec

checkBoxes[i].scrollIntoView(false); 

Ca y est !!!

= P

Questions connexes