begin process at 2012 02 11 13:36:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

Jscript

 > 

appelle d'une fonction javascript dans le code behind


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

appelle d'une fonction javascript dans le code behind

vendredi 20 août 2004 à 14:19:49 | appelle d'une fonction javascript dans le code behind

amel468

Bonjour,

J'essaye de construire un tableau qui doit posseder les propriétés extend et collapse.
Ce tableau se remplit a l'aide des données d'une table oracle et suivant les parametres sélectionnés par l'utilisateur.

je gere l'extand et collapse grace a des fonctions javascript, qui se declanchent lors de l'evenement onclick des balises <td> de mon tableau.
Le probleme, c'est que je n'arrive pas a faire fonctionner mes fonctions javascript....quand je clique sur les case, il ne se passe abolument rien...

est-ce que c'est parceque je les appelle d'une mauvaise facon ?


voici le code que j'utilise:

au moment de créer le tableau, dans le code behind


au depart, j'utilise une fonction fulltree qui, si la variable fullmode est a 'expand' affiche tout l'arbre et passe la variable fullmode a 'collapse', sinon n'affiche que les niveaux 0 et passe la variable a 'expand'. J'utilise ensuite la fonction showMode qui ne sert qu'a afficher un (+) ou un (-) suivant si l'arbre est deroule ou pas.

Je les appelle ainsi :

Page.Response.Write("<TR><TD id=PersonType name=PersonType valign=CENTER onclick=\"javascript:fulltree('" + title + "')\" >");
Page.Response.Write(title);
Page.Response.Write("<SCRIPT language=\"JavaScript\" type=\"text/javascript\">showMode()</SCRIPT>");

puis, dans chaque balise TD, j'appelle une fonction sur l'evenement OnClick, qui permettra de montrer les ligne enfants si on clique dessus, ou de les cacher si on re-clique.


while(dr.Read())
{
if (lno > 1) //lno = niveau de la ligne dans l'arbre
{
//ligne 1 puis a chaque passage du dr avance d'une ligne
Page.Response.Write("<TR class=level" + lno.ToString() + " style=\"display: none;\">");
//colonne 1
Page.Response.Write("<TD onclick=\"javascript:showrow(this.parentNode.rowIndex)\" class=\"level" + lno.ToString() + "\">" + dr.GetString(2));
}
else //=si niveau 0
{
//ligne 1 puis a chaque passage du dr avance d'une ligne
Page.Response.Write( "<TR class=level" + lno.ToString() + " >");
//colonne 1
Page.Response.Write( "<TD onclick=\"javascript:showrow(this.parentNode.rowIndex)\" class=\"level" + lno.ToString() + "\">" + dr.GetString(2) );
}



et voici la fonction qui se trouve sur la page page aspx, entre les balises <SCRIPT language="JavaScript" type="text/javascript"> et </script> du code html

function showrow(rowid)
{
var currow , level, childlevel

currow = rowid
level = parseInt(ClasTab.rows[currow].cells[15].innerHTML)

currow++;

if (ClasTab.rows[currow].style.display == "none")
{
mode = "open"
}
else
{
mode = "close"
}

if (currow < maxrows)
{
childlevel = parseInt(ClasTab.rows[currow].cells[15].innerHTML)

while ( childlevel > level)
{if ((childlevel == level+1) || mode == "close")
{
toggleRow(ClasTab.rows[currow])
}
currow++;
if (currow == maxrows) {break}
childlevel = parseInt(ClasTab.rows[currow].cells[15].innerHTML)
}
}
}


Merci beaucoup de votre aide !!

vendredi 20 août 2004 à 15:28:05 | Re : appelle d'une fonction javascript dans le code behind

jesusonline

Membre Club Administrateur CodeS-SourceS
C'est deja un peu plus clair avec toutes les étapes :)

donc regarde si alert ca marche, comme je te l'ai indiqué sur l'autre post

sinon je viens de penser à qqchose, et je pense que ce serait ca:


je suppose que ta page aspx est en gros comme ca :

<%@ page ... %>
<html>
<head>
<script langage="javascript">
function showrow(rowid)
{
...
}
</script>
</head>
<body>
</body>
</html>

tu fais un response.write, or le response.write ecrit au debut de la page c'est à dire que tu auras le code ecrit ici :

<TR><TD id=PersonType name=PersonType valign=CENTER onclick="javascript:fulltree("title")>
....
<html>
<head>
<script langage="javascript">
function showrow(rowid)
{
...
}
</script>
</head>
<body>
</body>
</html>

C'est la ou est le problème, car tu appelle fulltree alors que le navigateur la connait encore pas, car il lit la page de haut en bas.

donc pour palier à ce problème il suffit de faire

dans ton aspx :

<body>
<asp:literalcontrol id="lc" runat="server"/>
</body>

dans le code behind
protected withevents lc as LiteralControl

et à la place de tes response.write tu n'as plus qu'a ecrire
lc.innerText = "<tr> ...


Je pense que normalement la ca devrait marcher, pour plus d'info sur ce sujet, je t'invite à consulter mon tuto : http://www.aspfr.com/tutorial.aspx?id=30

@+


Cyril
vendredi 20 août 2004 à 16:30:33 | Re : appelle d'une fonction javascript dans le code behind

amel468

ca ne marche pas.

comme tu me l'as conseillé, j'ai ajouté au debut de ma page aspx.cs

public class clas : System.Web.UI.Page
{
protected withevents LiteralControl lc ;

et dans la page aspx j'ai
<body>
<MS_POSITIONING="GridLayout">
<asp:literal id="lc" runat="server"/>
<form id="Form1" method="post" runat="server">
</form>
</body>


j'avais mis au départ <asp:literalcontrol id="lc" runat="server"/> mais il ne reconnaissait pas cette balise. dans ton tutorial, j'ai vu que c'était simplement asp:literal.


j'ai une erreur sur protected withevents LiteralControl lc ;

Invalid token ';' in class, struct, or interface member declaration

est-ce que c'est bien cela que tu me disais de faire ?

merci bcp pour ton aide !!

vendredi 20 août 2004 à 17:10:33 | Re : appelle d'une fonction javascript dans le code behind

amel468

j'ai tenté de remplacer

protected withevents LiteralControl lc ;

par

protected System.Web.UI.WebControls.Literal lc;

et les lc.InnerText par

lc.Text = lc.Text + ...


j'ai donc une série de truc de ce genre:

lc.Text = lc.Text +"<PARAM NAME=color_e VALUE=#000000>";
lc.Text = lc.Text +"<PARAM NAME=Color_Active VALUE=#FDE3EA>";
lc.Text = lc.Text +"</APPLET>";

mais le résultat est catastrophique puisque seul mon tableau s'affiche, sans mise en forme maintenant, et les scripts ne fonctionnent toujours pas.
vendredi 20 août 2004 à 17:38:22 | Re : appelle d'une fonction javascript dans le code behind

amel468

OK, ca va mieux, j'avais juste oublié un "lc.text + "

toute ma page s'affiche correctement mais quand je veux cliquer sur une case de mon tableau, il ecrit dans la barre d'etat qu'il y a une erreur sur la page et rien ne se passe.

j'ai vérifié la source, les fonctions javascript s'affichent avant désormais.

le probleme vient surement de mes fonctions. je vais investiguer.....

merci pour les conseils que tu m'as donné !
vendredi 20 août 2004 à 17:55:04 | Re : appelle d'une fonction javascript dans le code behind

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
pffff je suis fatigué :d

oui effectivement c'est tout simplement literal et non literalcontrol
pour le withevents, c'est le code VB, j'avais oublié que tu travaillais en C# :) mais le principal c'est que ce soit bon maintenant

encore une derniere astuce :
au lieu d'ecrire
lc.Text = lc.Text +"<PARAM NAME=color_e VALUE=#000000>";
lc.Text = lc.Text +"<PARAM NAME=Color_Active VALUE=#FDE3EA>";
lc.Text = lc.Text +"</APPLET>";

ecrit donc

lc.Text +="<PARAM NAME=color_e VALUE=#000000>";
lc.Text +="<PARAM NAME=Color_Active VALUE=#FDE3EA>";
lc.Text +="</APPLET>";

pour ce qui est de l'erreur qu'il te reste, IE ne peux t'indiquer que des erreurs de Javascript, donc investigue de ce coté

@+

PS : si ma reponse te convient, cliques sur accepter la reponse, ainsi les personnes qui regardent le forum, voit que ce problème à une solution



Cyril
vendredi 20 août 2004 à 18:12:43 | Re : appelle d'une fonction javascript dans le code behind

amel468

encore une derniere question et puis j'arrete de t'embeter...

l'erreur vient quand j'appelle ClasTab.rows[k].cells[15].innerHTML dans mes fonctions javascript... il me dit qu'il est nul, ou bien que ce n'est pas un objet.

ClasTable est défini dans la page aspx.cs de cet facon

lc.Text += "<BR><TABLE ID=\"ClasTab\" class=clas Name=ClasTab border=1 width =75% cellspacing=0 cellpadding=0 >" ;

y'a -t-il un truc que j'ai oublié de faire ?

vendredi 20 août 2004 à 18:30:20 | Re : appelle d'une fonction javascript dans le code behind

jesusonline

Membre Club Administrateur CodeS-SourceS
Malheureusement je suis nul en javascript

mais ton erreur à l'air d'etre qu'il ne connait pas ClasTab
tu as deux solutions:
soit tu fais ainsi :
document.Form1.ClasTab.rows[k].cells[15].innerHTML
soit comme ca :
document.getElementById("ClasTab").rows .....

Je prefere la deuxieme méthode : pourquoi ? aucune idée :)

Je suis pas du tout sur pour la casse du code que je t'ai passé, ni meme pour sa validation, car je connais vraiment pas grand chose à javascript

@+


Cyril


Cette discussion est classée dans : fonction, page, write, response, currow


Répondre à ce message

Sujets en rapport avec ce message

Prb de pagination : HELP (urgent !) [ par Seboss ] Bonjour tt le monde !!!!ds mon site il y a une page qui affiche la liste de ts les user ! Comme il y en a bcp s'utilise la paggination !!!! c le meme Passage de parametre avec un formulaire [ par blat ] SalutJ'ai matté pas mal de tutoriaux et je fais pareil mais je dois louper qqch pcq ca ne marche pas...J'ai une page confirmerSuppression.asp?num=18 p response.write [ par benur7 ] Voila mon probleme:J'ai une page de resultat qui affiche une table dont je ne connais pas la taille a l'avance, je la construis ds le code vb.net dans Comment positionner les response.write inclus dans des fonction [ par Dyr3e ] bonjourj'ai créé une fonction en vb.net qui s'execute lorsque je clique sur un bouton . mon problème est que dans cette fonction , lorsque je realise Police trop grande après le response.write(…) [ par ngonka2003 ] <p class="MsoNormal" style="MA Créer une fichier xml à l'aide d'ASP [ par hazrael ] Bonjour à tous,J'ai créé un fichier ASP, dans mon intranet pro, qui me permet de construire un fichier xml (data.asp). Lorsque je l'ouvre via un lien Urgent!!!!!!!!!!!! Ouverture d'une page aspx comme un popup [ par debladz ] Bonjour, J'ai un petit soucis sur mon application Web. Alors voilà, Mon appli est créée avec une master page et une zone de contenu. Dans plusieurs de Formulaire avec pièce jointe [ par Bhidule ] Bonjour, Je cherche à créer un formulaire, dans lequel se trouve un champ permettant à l'utilisateur d'envoyer une image. Le formulaire doit ensuite ê ASP.net 3.5 Erreur de compilation [ par DonRou ] Bonjour, Je suis à mes premiers pas pour faire du développement web avec ASP.Net 3.5. J’ai déjà développé des sites en ASP (classique) et PHP. Le fr Response.Redirect et Ancrage [ par billou_13 ] Bonjour,Alors voila, je vous expose mon problème. Mon site asp.net est "AJAXisé" (permettez moi l'expression).Afin de conserver une URL dynamique lors


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,162 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales