[ASP .NET][javascript] Récupération de valeur d'une variable

Amis codeurs bonsoir,

je me demandais s’il était possible de récupérer la valeur d’une variable javascript pour le mettre dans le code-behind et inversement ? Si, oui, quel est la ligne de code qui permet toussa ?

J’ai surtout besoin de ça pour l’initialisation de mon tableau généré via javascript dans laquel j’ai besoin de définir la dimension des cellules, du nombre de lignes, des horaires, et de tout un tas d’autres informations.

Euh… tu fais comme ça .

Sans rire, c’est quoi la différence entre les 2 threads ?

C’est pas tout à fait çà que je veux. Désolé si je me suis mal fait comprendre. En fait, je voulais récupérer le(s) résultats que me génère la fonction du page_load() qui dépendent de tout un tas d’autres paramètres. Pour ensuite modifier le contenu d’une (ou des fonctionsà javascript se situant dans la page aspx (spécialement pour les boucles for par exemple).

Finalement, j’ai résolu le problème en écrivant le javascript directement dans le code-behind.

Finalement, j’ai un autre problème, je n’arrive pas à modifier les valeurs de mon CSS via le code-behind.

[code]int debutJournee = 8;
int finJournee = 21;
int nbZones = 8;
int nbSalles = 5;
int table_width = 1085;
int cell_width;

/*
Ici, je calcule la dimension d’une cellule en fonction des heures ouvrables définit plus haut
cell_width est la nouvelle dimension, et je veux ensuite attribuer cette valeur à ma class de style
intitulé “.hours div”
*/
protected void Page_Load(object sender, EventArgs e)
{
cell_width = table_width / (finJournee - debutJournee);
string change_cellsWidth = "”;

	Page.RegisterStartupScript("setup_cellWidth", change_cellsWidth);
}[/code]

Et la class de stle concernée

[html].hours div {
width: 40px;
float: left;
text-align:left;
font-family:arial;
height:24px;
font-size:1.0em;
line-height:24px;
border-right: 1px dashed #ACA899;
border-bottom: 1px solid #ACA899;
}[/html]

Ce qui au final, me permettra d’avoir un rendu du tableau comme ceci (bien sur la largeur de la cellule de chaque row s’adapte de facon dynamique, or je n’y arrive pas. Mes instructions ne font rien) :

Pour ce qui est d’écrire du code dans la page tu peux utiliser <% = maVariable %>

par exemple, j’utilise souvent
var myField = document.getElementById(’<%=_TextBox1.ClientID%>’);
et ça marche.

Pour le CSS, euh là je sais pas… à la limite tu récupère ta Cell dans le dataBound et tu lui colles un style, peut être que ça marche.
Au pire, tu fais cell.Attributes[“style”] = “width:150px; bla:bla; etc.”; peut être… aussi

J’imagine que si je veux récupérer le contenu d’une variable global de la class du code-behind, sa fonctionne aussi sans que je retourne cette valeur dans un composant web ? (genre : var myField = document.getElementById(’<%=_maVariableGlobalDuCodeBehind%>’); ).

C’est juste une question conne.
PS : je ne l’ai pas encore testé pour le moment vu que je n’ai plus de script à éxécuter à partir du aspx.

Oui oui… tu peux faire tout ce que tu veux…

Hum, j’ai testé la ligne de code ci dessus mais malheureusement ca ne fonctionne pas. le code javascript se trouve isolé du code behind et de la webpage. Bien que la MasterPage fait appel au fichier javascript.

Le code situé dans le fichier js. D’ailleurs je ne sais pas si ma syntaxe est correcte (clientID.SelectedValue , euh ca s’écrit sa ?? ).

color = document.getElementById('<%=DDL_GroupeVisiteur.clientID.SelectedValue%>'); selectedVisitorGroup = document.getElementById('<%=DDL_GroupeVisiteur.clientID.SelectedItem.Text%>');

Sinon, ca marche dans l’autre sens ? Je m’explique, je récupère une valeur javascript pour la stocker dans une variable C#.

Exemple (je ne connais pas la syntaxe exacte pour ce genre de transfert, donc je mets tel que je le vois) :

public void maFonctionParser() { string chaine = ""; chaine = "<script type='text/javascript'> var id = document.getElementById('identifiant').title </script>"; // ma variable chaine contiendra alors, la valeur contenu dans id. // l'ID du getElementById vient d'un div uniquement, et je veux récupérer uniquement ces attributs pour les utiliser dans ma fonction de parsing XML // instructions Parser XML }