IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Injecter une valeur dans un champs TextBox avec du Jscript


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut Injecter une valeur dans un champs TextBox avec du Jscript
    Bonjour

    J'avais récupérer ici même du code pour faire ce genre de chose, mais là, je sèche sur un point particulier car mon contexte à un poil changé, je suis contrains de tout faire en CodeBehind.

    Je place le code HTML et CodeBehind à la fin du topic, j'ai tout mis pour être clair.

    Le code que je founis affiche deux Textbox, la première dans laquelle on va saisir un code postal, la seconde qui va aficher un ID suite au click dans la liste déroulante qui apparait à la suite du code postal.

    Sur une autre page dans mon site, ça marche bien, mais le Jscript est dans le Code HTML.
    Là, je n'ai pas d'autre choix que de l'injecter à partir du CodeBehind car cela fait partie d'une Sub de création de contrôle dans un formulaire.

    Lorsque je choisi une ville dans la lsite, j'ai une erreur Jscript qui apparait
    'null' a la valeur Null ou n'est pas un objet.
    Je me doute bien qu'il parle de la TextBox que je cherche, mais je ne trouve pas le moyen de lui indiquer où elle est puisqu'elle est créée à la volée.

    Je vous laisse juge de mon code, dans l'espoir que quelqu'un puisse m'aider, car je sèche et l'ennui c'est qu'il pleut aujourd'hui, alors, c'est pas cool.....

    Code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Page sans titre</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <ajax:ScriptManager ID="smTest" runat="server"></ajax:ScriptManager>
        <asp:PlaceHolder ID="phGlobal" runat="server"></asp:PlaceHolder>
        </form>
    </body>
    </html>
    CodeBehind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
     
    Partial Class test
    	Inherits System.Web.UI.Page
     
    	Private tblFormulaire As New Table
     
    	Sub CreationTXTListe(ByVal nom As String, ByVal libelle As String, ByVal rfvMsgErr As String, ByVal ServiceMethod As String, ByVal onClientSelectedItem As String, ByVal MinimumPrefixLength As Int16)
    		Dim r As New TableRow
    		Dim c1, c2, c3 As New TableCell
    		Dim l As New Label
    		Dim t, th As New TextBox
    		Dim rfv As New RequiredFieldValidator
     
    		r.ID = "row" & nom
    		c2.ID = "cell" & nom
    		t.ID = "txt" & nom
    		th.ID = "hf" & nom
    		th.CssClass = "invi"
    		l.Text = libelle
    		With rfv
    			.ErrorMessage = rfvMsgErr
    			.ControlToValidate = t.ID
    		End With
     
    		Dim ace As New AjaxControlToolkit.AutoCompleteExtender
    		With ace
    			.ID = "ace" & t.ID
    			.ServiceMethod = ServiceMethod
    			.OnClientItemSelected = onClientSelectedItem
    			.MinimumPrefixLength = MinimumPrefixLength
    			.TargetControlID = t.ID
    			.UseContextKey = True
    			.Enabled = True
    			.ServicePath = "~/ListeDynamique.asmx"
    		End With
    		c3.Controls.Add(th)
    		If rfvMsgErr <> "" Then
    			c3.Controls.Add(rfv)
    		End If
    		c1.Controls.Add(l)
    		c2.Controls.Add(t)
    		c2.Controls.Add(ace)
    		r.Cells.Add(c1)
    		r.Cells.Add(c2)
    		r.Cells.Add(c3)
    		tblFormulaire.Rows.Add(r)
    		Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "monScript", "<script type='text/javascript'> var " & onClientSelectedItem & " = function(sender, e){		$get('<%=CType(phGlobal.FindControl(""tblFormulaire"").FindControl(""row" & nom & """).FindControl(""cell" & nom & """).FindControl(""hf" & nom & """), TextBox).ClientID%>').value = e.get_value(); }</script>")
    	End Sub
     
    	Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    		CreationTXTListe("ville", "Ville au choix : ", "faut en donner une", "GetVilleCodePostal", "tbCity_ClientItemSelected", 5)
    		phGlobal.Controls.Add(tblFormulaire)
    	End Sub
    End Class

  2. #2
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben alors, ça sèche ?
    J'ai vraiment le chic pour trouver des soucis que personne ne connait......

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Salut Zoofy,
    et si à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Page.ClientScript.RegisterClientScriptBlock
    tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.Page.ClientScript.RegisterStartupScript
    C'est peut être du au javascript qui est interprété alors que la page n'a pas fini d'être chargée et la fonction que je viens de te donner enregistre ton script à la fin de la page.

  4. #4
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.
    J'étais justement en trian de me dire un truc dans ce genre là : le fameux cycle de vie de la page.
    Mais je viens de placer ce que tu m'as donné et nada, toujours le même résultat.

    J'avoue être complètement paumé car je n'ai même pas le moyen de comprendre d'où peut venir cette erreur.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Pour les problème lié à du Javascript, je te conseille d'utiliser Firebug avec Firefox.
    C'est excellent, tu peux faire du débogage dans le javascript faire du pas a pas et pleins de choses encore.
    Il faut un peu le prendre en main, mais depuis que j'utilise le débogage du javascript est beaucoup plus simple.

    (utiliser un framework JS avec les webservices est un vrai bonheur)

  6. #6
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ouais, certainement. Mais je dois avouer que là, c'est pas tout à fait l'objet, faut que je rende ça pour ce soir.......

    Mais surtout, le truc que je capte pas, c'est que lorsque je mets la même chose dans le code HTML, ça marche Nickel Chrome. C'est depuis que je fabrique tout à la volée, que ça marche plus.

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Tu utilises IE ou Firefox ?
    Si IE, vas dans Outils --> Optios Internet --> Avancé --> Décocher la case "Désactiver le débogage de script"

    Ainsi lorsque ca va te péter l'erreur il va arreter à l'endroit ou il y a eu l'erreur, ca donnera ainsi plus d'informations.

    null a la valeur null ou n'est pas un objet, c'est difficile de savoir

  8. #8
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    OK, j'ai fait comme tu dis, car j'utilise IE, FireFox on verra plus tard, beaucoup plus tard.

    Et lorsque je rentre dans le truc de Debogage il bloque récisément sur ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $get('<%=CType(phGlobal.FindControl("azer"), TextBox).ClientID %>').value = e.get_value();
    Mais je comprends pas. Au moment où il exécute le code, ce contrôle existe.
    Il ne peut donc pas être null.
    Ou alors j'ai loupé un détail

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    La je sèche total.
    Le débogage javascript, c'est plus chaud comme ca.
    Mis à part vérifier que tous tes éléments existent bien dans le DOM au moment ou le code est interprété, je ne sais pas quoi faire d'autre...
    Désolé

  10. #10
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben, j'ai remis les mains dedans ce matin, mais j'avance pas plus.
    Quelqu'un aurait une idée ?

  11. #11
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Euh...en fait....

    Tu dis que dans ta page html apres rendu, tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $get('<%=CType(phGlobal.FindControl("azer"), TextBox).ClientID %>').value = e.get_value();
    Sauf que, quand tu vas appeler ta fonction $get, il ne vas pas pouvoir faire un rendu de CType(phGlobal.FindControl..., parce qu'il est cote client, non ?

    Je pense que tu aurais peut-etre de meilleurs resultats en faisant qq chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim ctl as TextBox = phGlobal.FindControl("tblFormulaire").FindControl("row" & nom).FindControl("cell" & nom).FindControl("hf" & nom)
     
    Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "monScript", _
    "<script type='text/javascript'> var " & onClientSelectedItem & " = function(sender, e){$get('" & ctl & "').value = e.get_value(); }</script>")

  12. #12
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par Promesses Voir le message
    Pour les problème lié à du Javascript, je te conseille d'utiliser Firebug avec Firefox.
    C'est excellent, tu peux faire du débogage dans le javascript faire du pas a pas et pleins de choses encore.
    Il faut un peu le prendre en main, mais depuis que j'utilise le débogage du javascript est beaucoup plus simple.

    (utiliser un framework JS avec les webservices est un vrai bonheur)
    Visual Studio 2008 avec Visual Studio 2008 c'est bien aussi

  13. #13
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci Ditch, je vasi en parler à ma patronne et on verar ce qu'elle dit, amis bon, euh, comment t'expliquer....... VS 2005 c'était déjà un "Cadeau" l'année dernière. Avant c'était Dream Waver.......

    Merci pvialatte pour ton aide.
    J'ai procédé à l'implentation de ton code en lieu et palce du mien, comme tu l'indique.
    Maintenant j'ai une erreur .NET :
    La référence d'objet n'est pas définie à une instance d'un objet.
    Et ça se passe sur la ligne du DIM que tu donne.

    J'ai peur de ne pas avoir bien compris où il fallait mettre se code.

  14. #14
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Est ce que tu fais du débogage et du pas à pas ?

  15. #15
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Non, malheureusement, les configurations serveur chez nous ne sont pas au top et donc on ne peut pas utiliser ça.
    Dommage.

  16. #16
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Vi, en fait, j'aurais du regarder 2 secondes, ta reference a ta textbox, tu la crees juste au dessus

    Essaye comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Me.Page.ClientScript.RegisterClientScriptBlock(Me.GetType, "monScript", _
    "<script type='text/javascript'> var " & onClientSelectedItem & " = function(sender, e){$get('" & th.ClientId & "').value = e.get_value(); }</script>")
    je crois que c'est la valeur de th que tu veux modifier, non ?

  17. #17
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Oui, pardon, j'ai oulbié ce détail dans mon précédent message. C'est ce que je fais, justement, aprce qu'il me refusait l'accés direct à l'objet et attendais plutôt un truc sous forme de string pour le concaténer.

    J'ai essayé aussi avec l'ID, mais pas mieux.

  18. #18
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2003
    Messages : 353
    Points : 361
    Points
    361
    Par défaut
    Je comprends pas la ?
    Tu développes pas en local ?

  19. #19
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben non, j'ai un serveur de développement ISO production.
    C'est beaucoup plus fiable que de développer en local, surtout vu ce que je fais subir à ma machine.

    Mais l'ennui c'est que vu que je ne suis pas compétent en administration serveur et que je suis le lus balaise de la boite, ben personne ne epux configurer ce qu'il faut pour qu'on puisse faire du débogage propre.

    Rien que les extensions FrontPage, ça a été deux semaines de recherche intense avec l'admin de l'époque, qui a démissionné, bien sûr ............

Discussions similaires

  1. Réponses: 0
    Dernier message: 26/03/2014, 03h34
  2. Réponses: 0
    Dernier message: 14/05/2009, 12h38
  3. Ecrire une valeur dans un champ avec du code
    Par guintolli dans le forum SharePoint
    Réponses: 1
    Dernier message: 18/07/2008, 10h52
  4. Renvoi d'une valeur dans un champ avec un style
    Par m@thieu dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/11/2005, 18h09
  5. Conserver une valeur dans un champs
    Par zakfa dans le forum IHM
    Réponses: 5
    Dernier message: 04/10/2004, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo