cs_funseb
Messages postés154Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention28 janvier 2010
-
5 mars 2008 à 15:57
cs_funseb
Messages postés154Date d'inscriptiondimanche 29 juin 2003StatutMembreDernière intervention28 janvier 2010
-
5 mars 2008 à 16:48
Bonjour,
J'ai un énorme problème en javascript, je cherche depuis déjà pas mal de temps et impossible de trouver une solution. Voila mon problème : j'ai un datagrid (aspx). Je prend le cas où j'ai 2 colonnes. Donc en javascript, j'ajoute une ligne à mon datagrid dès le chargement de la page (pour ma ligne , je crée donc des cellules et met dans chaque cellule une textbox), ceci en passant en paramètre pour chaque cellule, la largeur, le nombre de caractère max et le type de la textbox présent dans chaque cellule (numérique, alpha ...). Donc en gros j'ai une boucle qui va de 0 à n colonnes. et j'ai l'information du type de la colonne dans un array par exemple [0,2] , la 1 ere colonne à 0 soit type alpha, la seconde colonne à 2 = type numérique....
Donc mon code est le suivant :
for
(i=0;i<nbcol;i++)
{
var
cell = row.insertCell(i); //Ajout de la cellule dans la ligne
var reg new RegExp("[*]+","g"); //récupération des valeurs de longueur pour les cellule (recu de cette facon 200*100*10 pour dire Largeur col 1 200, largeur col 2 = 100 ...
var
tab = TabLongueur.split(reg);
if
(tab[i] != '0') //si la valeur != de 0 soit on a défini une largeur spécifique
{
var
Calcul = tab[i];
}
else
{
var
Calcul = (500 - 30)/ (nbcol); }
cell.width = Math.round(Calcul);
var
el document.createElement('input'); //dans chaque cellule du datagrid , il y a une textbox el.type 'text';
el.width = Math.round(Calcul);
el.height = 20;
tab = TabCaractere.split(reg); //meme principe que la longueur de la cellule mais cette fois pour récuperer nb caracteres max de la textbox
if
(tab[i] != '0') {
var
intNb tab[i]; el.maxLength intNb;
}
var
reg2 =
new
RegExp("[*]+","g");
var
tab2 = param.split(reg2);
valligne = MiseEnForme(iteration);
valcol = MiseEnForme(i);
el.name = 'txtRow' + valligne + valcol;
el.id = 'txtRow' + valligne + valcol;
el.onblur =
function(){GestionType(this
, tab2[i]);}; // ET C'EST LA QUE CA MARCHE PAS !!!!!!!!!!!!!!!!!
Donc en gros, j'aurais voulu pour chaque cellule, lui attacher l'événement onblur avec les bons paramètres au niveau du type autorisé ! par exemple pour la 1 ere cellule tab2[0] = 2 soit du numérique donc je verifie avec GestionType(this, 2) .... Or, ca n'attache pas l'évenement à chaque tour de boucle ! si j'ai 4 colonnes, et bien le onblur sur toutes les textbox de la ligne va prendre pour valeur tab2[5]. idem si je fais un alert(i) dans mon onblur, pour toutes les cellules de ma ligne il va m'afficher 5 (dans le cas ou j'ai 4 colonnes ....)
cell.appendChild(el);
}
}
Voila donc mon problème. Desolé si mon explication est pas super, c'est pas évident ... cela dit si quelqu'un a deja eu ce problème j'imagine qu'il pourra m'aiguiller.