Trucsweb.com

Forum de discussion

 Forum « Programmation Javascript » (archives)

Re: pb d'affichage en grisé

Envoyé: 4 avril 2005, 9h32 par Oznog


Salut,

Le code test déjà tout ce qu'il y a dans textBox1. Tu ne peux rien avoir de plus qu'une valeur dans un champ de ce type (asp:TextBox). Alors tu parle d'une champ qui contient plusieurs mots ?

Mais, ton problème me semble d'avantage le ciblage. Tu dois faire attention, il y a deux méthodes totalement différentes que TU NE PEUX MÉLANGER ENSEMBLE (ils ne partagent pas les même propriétés/méthodes).

Donc avant tout ATTENTION :

MÉTHODE form
===============
Le Tutoriel que je t'ai invité à lire passe directement par l'objet "form" et descendre la hiérarchie (document.formulaire.element). "form" est un mot réservé en Javascript, tout comme "image" (new Image()). Si tu as plus d'un formulaire form[n] :

document.form
ou document.nomDuForm

C'est la même chose (attention, ce n'est pas le ID mais le "name"). Tout comme le this (lui-même) :

this.form
ou
this.nomDuForm

Mais dans ce dernier cas, le this étant relatif, ce n'est pas toujpours vrais. Dans un bouton par exemple, le "this" représente le bouton lui-même qui ne contient évidement pas d'objet formulaire (this[Bouton].nomDuForm[Faux]).

C'est généralement conseiller de passer à une fonction les objets eux-même. Tu as besoin de la liste et du champ texte. C'est pour ça que j'ai fais :

twSelectBGC(this.form.maListe,this.form.monChamp)

Pourquoi? Pour avoir une fonction universelle (portable).

MÉTHODE DOM
===========
Mais tu peux aussi passer par le DOM en ciblant directement le ID de l'élément (document.getElementById('TextBox1'). Si tu mélange les deux ça ne fonctionnera pas toujours bien que "value" le soit.

document.getElementById('TextBox1').value

Dans ton cas, le .NET travail avec un ID alors let's go :

<input type="button" name="Button" value="Button" OnClick="twSelectBGC(document.getElementById('ListBox1'),document.getElementById('TextBox1'))" >

Voilà pour le ciblage. Et assure toi de faire touit tes tests en Javascript pûr avant de le faire en .NET.

L'ERREUR
==========
La deuxième étape est du ressord du .NET. Et particulièrement spécifier au asp:Button d'appeler la fonction "twSelectBGC". C'est d'ailleurs ton message d'erreur :

'twSelectBGC' is not a member of 'ASP.recherche_gest_thesaurus_aspx'.

Alors là c'est une autre histoire, rien à voir avec le Javascript. Avec le .NET tu ajoute une toute nouvelle dimension, le traitement en temps réel côté serveur (runat="server").

Je ne suis pas spécialiste du .NET mais la plupart des développements utilisent aussi un vb ou c#. C'est intégré au .NET. Même plus besoin de ciblage.

En c# par exemple, tu vois bien que "monTexte" est accessible directement sans plus de spécification.

<script language="C#" runat="server">
void twPasseValeur ( Object src, EventArgs e ) {
if ( ! ( monTexte.Text == "" ) ) {
autreChampTexte.Text = monTexte.Text;
}
}
</script>

En VB

<script language="VB" runat="server">
Sub twPasseValeur ( src As Object, e As EventArgs )
If Not monTexte.Text = "" Then
autreChampTexte.Text = monTexte.Text
End If
End Sub
</script>

Et le contrôle
<form runat="server">
<asp:textbox id="monTexte" runat="server" >
<asp:textbox id="autreChampTexte" runat="server" >

<asp:button id="monBouton" runat="server" text="Submit" onClick="twPasseValeur" >
</form>

CONCLUSION
==========

Encore une fois il y a plus d'une méthode et les mélanger peut causer des problèmes. Note qu'il manque des informations pour trouver la bonne méthode. Par exemple pourquoi un bouton? Que fait il ce bouton à part l'appelle de la fonction Javascript ? Pourquoi alors ne pas écrire directement :

<form id="monForm" method="post" onsubmit="submit" runat="server">
<asp:TextBox id="TextBox1" style="Z-INDEX: 101; LEFT: 249px; POSITION: absolute; TOP: 62px" runat="server" Width="284px" Height="31px"></asp:TextBox>
<asp:ListBox id="ListBox1" style="Z-INDEX: 102; LEFT: 139px; POSITION: absolute; TOP: 159px" runat="server" Width="538px" Height="335px"></asp:ListBox>
<asp:Label ID="label_affiche_listealpha" runat="server"></asp:Label>

input type="button" name="Button" value="Button" OnClick="twSelectBGC(document.getElementById('ListBox1'),document.getElementById('TextBox1')" >
</form>

p.s. La discussion devrait se poursuivre dans le forum ASP.

Ciao
Oznog


Réponses

 Aucune réponse à ce message... 
Aucun médias sociaux
X

Trucsweb.com Connexion

X

Trucsweb.com Mot de passe perdu

X

Trucsweb.com Conditions générales

Conditions

Responsabilité

La responsabilité des Trucsweb.com ne pourra être engagée en cas de faits indépendants de sa volonté. Les informations mises à disposition sur ce site le sont uniquement à titre purement informatif et ne sauraient constituer en aucun cas un conseil ou une recommandation de quelque nature que ce soit.

Aucun contrôle n'est exercé sur les références et ressources externes, l'utilisateur reconnaît que les Trucsweb.com n'assume aucune responsabilité relative à la mise à disposition de ces ressources, et ne peut être tenue responsable quant à leur contenu.

Droit applicable et juridiction compétente

Les règles en matière de droit, applicables aux contenus et aux transmissions de données sur et autour du site, sont déterminées par la loi canadienne. En cas de litige, n'ayant pu faire l'objet d'un accord à l'amiable, seuls les tribunaux canadien sont compétents.

X

Trucsweb.com Trucsweb

X

Trucsweb.com Glossaire

X

Trucsweb.com Trucsweb

X

Trucsweb.com Trucsweb

Conditions

Aucun message!

Merci.

X
Aucun message!
X

Trucsweb.com Créer un compte