Bonjour,
je reviens � la charge, parce que j'ai un petit probl�me avec le tableau.
j'utilise le code de "parsing" du tableau de structure en tableau d'objets javascript. Je ne mets pas de balise <javascript> dans la g�n�ration du tableau. Je ne mets que le contenu de la variable car j'enregistre le r�sultat de la fonction de parsing dans une variable c# et je l'enregistre dans un contr�le hidden. Ensuite, je d�clare une balise javascript, une variable (var JListStructs =) et l�, je fais appel au contenu du contr�le hidden.
Puis, quand je fais une alerte sur la variable que je r�cup�re, il m'affiche bien le tableau (parfaitement construit mais en chaine de caract�re : var JListStructs = [etc.]). Mais lors de l'ex�cution, il me met JListStructs[i] is undefined (c'est dans une boucle).
Alors ce que j'ai fais, c'est mettre le contenu de la variable string c# (dans laquelle j'ai le tableau javascript) dans un label. J'ex�cute. et l�, je mets ce que m'affiche le label dans le code (var JListStructs = 'contenu du label que je colle ici', le contenu n'est pas coll� dynamiquement)
Puisque l'affectation de la variable se fait statiquement :
var JListStructs = [{var1:'contenuVar1', ....},{{var1:'contenuVar1', ....}];
Mon tableau se construit correctement et je n'ai pas d'erreur. Alors que la copie dynamique pose probl�me. Je ne vois absolument pas pourquoi...
Lors de l'alerte (affectation statique), il ne m'affiche pas le tableau en chaine de caractere mais il m'affiche
[object Object],[object Object],[object Object],[object Object]
j'ai 4 objets.
Mon code c#
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| protected string GenerateJavascriptArray(WSProxy.Struct[] structs){
StringBuilder stb = new StringBuilder();
stb.Append("[\n");
foreach (test t in structs){
stb.Append("{m1: '").Append(t.m1);
stb.Append("',m2: '").Append(t.m2);
stb.Append("'}\n,");
}
stb.Remove(stb.Length - 2, 2);
stb.Append("]");
return stb.ToString();
} |
instruction dans laquelle j'appele la fonction de parsing :
tempHidden.Value = GenerateEventsJavascriptArray(JListStructs);
Le code javascript :
1 2
| var JListStructs = [document.getElementById('<%=tempHidden.ClientID%>').value];
alert(JListStructs); |
Lors de l'alerte, il me met JListStructs undefined...
Merci...
[EDIT] quand je passe ma variable c# au controle "hidden", ma chaine de caractere qui construit le tableau d'objets javascript est modifi�e... je sais pas pourquoi. J'ai donc utilise un Response.Write directement pour remplir ma variable javascript sans passer par le input hidden. Et ca marche parfaitement[/EDIT]
Partager