PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Projet Ajax WebDev - Attention
Projet Ajax WebDev - Attention
Iniciado por Blanchard.james, fev., 17 2006 5:59 PM - 1 resposta
Publicado em fevereiro, 17 2006 - 5:59 PM
A l'attention d'Olivier, auteur du projet Ajax WebDev.

J'ai testé la page du projet relative aux combos.
Je l'ai adaptée pour une succesion de 4 combos (Pays -> Région -> Département -> Villes).
J'ai ainsi découvert une anomalie.
Cette anomalie est situés dans la fonction JS ListSupprimeTout.
En effet, il semblerait que cette fonction ne supprime que les 140 premières options de la combo que l'on désire vider.

Le code original de cette fonction est :

function ListSupprimeToutOld(Combo)
{oCombo = eval("_PAGE_."+Combo);
if (oCombo.length > 0) {var i; for (i in oCombo){oCombo.remove(i);}}}

Je l'ai remplacé par le code suivant :

function ListSupprimeTout(Combo)
{oCombo = eval("_PAGE_."+Combo);
for (i=oCombo.length-1;(i>=0);i--) {oCombo.options[i] = null;}}

Ca a l'air plus efficace.
Si quelqu'un pouvait me dire pourquoi la fonction originale s'arrête à 140, ce serait bien.

Merci.
James
Publicado em fevereiro, 24 2006 - 12:28 PM
Salut,

Effectivement, il y avait un réel problème avec la procédure initial :
Cette dernière faisait un POUR TOUT mais il se trouve qu'au lieu de renvoyer les id de chaque options, cela renvoi tous
les attributs disponible pour la collection concerné.
Généralement c'est utilisé pour les tableaux (array) et là, ça fonctionne très bien !

On va donc modifier le projet en conséquence ;-)

Merci beaucoup pour ta remarque et tes recherches !!!

Bon dev,

Olivier

James m'a fait remarqué :

A l'attention d'Olivier, auteur du projet Ajax WebDev.

J'ai testé la page du projet relative aux combos.
Je l'ai adaptée pour une succesion de 4 combos (Pays -> Région -> Département -> Villes).
J'ai ainsi découvert une anomalie.
Cette anomalie est situés dans la fonction JS ListSupprimeTout.
En effet, il semblerait que cette fonction ne supprime que les 140 premières options de la combo que l'on désire
vider.

Le code original de cette fonction est :

function ListSupprimeToutOld(Combo)
{oCombo = eval("_PAGE_."+Combo);
if (oCombo.length > 0) {var i; for (i in oCombo){oCombo.remove(i);}}}

Je l'ai remplacé par le code suivant :

function ListSupprimeTout(Combo)
{oCombo = eval("_PAGE_."+Combo);
for (i=oCombo.length-1;(i>=0);i--) {oCombo.options[i] = null;}}

Ca a l'air plus efficace.
Si quelqu'un pouvait me dire pourquoi la fonction originale s'arrête à 140, ce serait bien.

Merci.
James