Gérer le Scroll d'une listbox

Signaler
Messages postés
10
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
24 novembre 2005
-
Messages postés
10
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
24 novembre 2005
-
Après avoir sélectionné une ligne dans une listbox,et après retour du serveur, je voudrais opérer un scroll de façon à ce que cette ligne apparaisse en première position dans ma liste

6 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

document.getElementById("id du select").selectedIndex=n° de ligne voulue;
en javascript
sinon <option selected>ligne choisie</option> en html
( donc il faudra sûrement la mémoriser dans
du <form> pour que le php puisse la restituer )

Cordialement. Bul. ~ Site ~
Messages postés
10
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
24 novembre 2005

Sélectionner la ligne n'est pas un problème pour moi, ce que j'ai besoin de savoir c'est comment scroller la liste pour que la ligne sélectionné se trouve en première position dans ma liste quel que soit son numéro de ligne.
Ex : je sélectionne la ligne 25 d'une listbox, après traitement sur le serveur, faire scroller ma liste afin d'éviter à l'utilisateur d'appuyer sur l'ascenseur pour relocaliser sa ligne.
L'équivalent 'TopRow' du contrôle MSHFlexGrid de vb.
Merci d'avance
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ce que j'ai proposé le fait ( enfin avec IE, pas testé ailleurs ) ...
Cordialement. Bul. ~ Site ~
Messages postés
10
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
24 novembre 2005

Hélas cela ne marche pas pour moi.
Je te joins mon code et espère que tu auras le temps de te pencher dessus pour me dépanner.
Un grand merci à toi pour ton aide.

function HabilleLaListeDom(name)
{
objDom=document.getElementById(name);
objDom.style.display='none';
nb_ligne=objDom.size;
nb_objDom=objDom.options.length;
document.write('
');
document.write('');

for (i=0;i<nb_objDom;i++)
{
document.write('----
');
for (n=0;n<objDom.options[i].innerHTML.split('|').length;n++)
{
document.write('');
document.write('');
document.write(objDom.options[i].innerHTML.split('|')[n]);
document.write('');
document.write(', ');
}
document.write('');
}
document.write('

');
document.getElementById('listboxHabillageDom').style.width= parseInt(objDom.style.width)-20;
document.getElementById('divlistboxHabillageDom').style.width= parseInt(objDom.style.width)-20;
document.getElementById('divlistboxHabillageDom').style.height= nb_ligne*25;
LigneTrDom= document.getElementById('listboxHabillageDom').getElementsByTagName("tr");
for (i=0;i<LigneTrDom.length;i++)
{
LigneTrDom[i].onclick = new Function("trclickDom(this,"+i+")");
LigneTrDom[i].onmouseover = new Function("troverDom(this)");
LigneTrDom[i].onmouseout = new Function("troutDom(this)");
}
}
function SelectionneLaLigne(NumeroDeLigne, name)
{
LigneTrDom[NumeroDeLigne].bgColor=color_select;
objSel=document.getElementById(name);
objSel.selectedIndex=NumeroDeLigne;
}
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
s'il y a objDom.options[i]...
et si c'est de ce select dont il s'agit : objDom.selectedIndex=valeur;
et sûrement d'ailleurs objDom.selectedIndex=<?php echo $indice voulu; ?>

Cordialement. Bul. ~ Site ~
Messages postés
10
Date d'inscription
lundi 13 septembre 2004
Statut
Membre
Dernière intervention
24 novembre 2005

Comment puis-je t'envoyer les captures écran pour mieux te faire comprendre ce que je génère et ceux à quoi je veux arriver.
A+