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 :

[C#][JS] Comment activer/désactiver un contrôle ?


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut [C#][JS] Comment activer/désactiver un contrôle ?
    bonjour,

    sur une page contenant un formulaire, j'utilise une fonction javascript toute simple pour rendre editable certain controls ( fonction enable_disable()). je sais que la fonction marche puisque je l'ai deja applique sur des pages asp mais la bizarrement sur ma page aspx, la fonction ne marche ....qu'a moitie !!

    voici le code de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function Enable_Disable() 
         { 
          if(document.AddNewDoc.testck.checked == true) 
               { alert("youhou where is the function?"); 
                 document.AddNewDoc.OwnerList1.enabled = true; 
               } 
          else 
               { 
                  alert("not checked?"); 
                  document.AddNewDoc.OwnerList1.enabled = false;
                  document.AddNewDoc.OwnerList1.value = "";
               }
         }
    voici mes controls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <asp:checkbox id = testck runat="server"/>
    <asp:DropDownList id="OwnerList1" Width="250px" Runat="server" Enabled="False"/>
     
    j'ai rajoute un attribut au checkbox dans la partie control behind:
    testck.Attributes.Add("onclick", "Enable_Disable();");
    
    en fait la fonction ne m'affiche que les messages d'alerte ( qui ne sont la que pour le test) et la suppression de la valeur du control (value="") mais la dropdownlist reste dans tous les cas grisee !!

    y a t il quelque chose de particulier a faire?
    j'ai deja pose la question sur le forum javascript mais aucune reponse, donc je me tourne vers celui ci.

    merci d'avance pour votre aide..

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    normal les id client javascript et les id client générés lors de la création des pages aspx nê sont pas les mêmes. en gros ta fonction enable_disable il faut tu la codes dans le .cs.
    un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string mafonctionjs="function Enable_Disable() 
    { 
    if(document." + moncontrol.clientId + ".checked=" etc...";
     
    testck.Attributes.Add("onclick", mafonctionjs);

  3. #3
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    merci pour cette info !

    je vais essayer donc...

    a++

  4. #4
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    et ben j'ai essayer, mais vu que je debute en dotnet, j'ai peut etre louper une etape ...parce que ca ne marche pas...

    mon code est le suivant :
    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
    dans le code-behind:
     
    privatevoid Page_Load(object sender, System.EventArgs e)
    {
    
     
    string mafonctionjs="function Enable_Disable();" 
    + "{if(document.AddNewDoc.testck.checked == true)" 
    + "{document.AddNewDoc.OwnerList1.enabled = true;alert('this should be: ' + document.AddNewDoc.OwnerList1.enabled);" 
    + "}"
    + "else"
    + "{document.AddNewDoc.OwnerList1.enabled = false;alert('this should be: ' + document.AddNewDoc.OwnerList1.enabled);" 
    + "}}";
     
     
    RefInc.Attributes.Add("onclick", mafonctionjs);
     
    dans la page du formulaire:
    <asp:checkbox id="RefInc" Runat="server"/>
    <asp:dropdownlist id="OwnerList1" Width="250px" Runat="server" Enabled="False"/>
    
    si quelqu'un avait une idee, un conseil, une aide
    merci d'avance...

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    relis bien ce que j'ai mis. à un moment tu ClientId et pas une fois tu t'en es servi. c'est "document.AddNewDoc." + Ownerlist1.ClientId etc...

  6. #6
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    je te remercie pour ton aide, mais bien que je ne veuille pas etre un boulet, j'ai fait les changements, et ca ne marche tjrs pas. de plus j'ai une erreur javascript bizarre qui me dit qu'il faut un "{" .

    voici le code a present :
    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
    
    string mafonctionjs="function Enable_Disable();" 
    + "{"
    + "if(document.AddNewDoc." + RefInc.ClientID + ".checked == true)" 
    + "{"
    + "document.AddNewDoc." + OwnerList1.ClientID +".enabled = true;"
    + "alert('this should be: ' + document.AddNewDoc." + OwnerList1.ClientID +".enabled);" 
    + "}"
    + "else"
    + "{"
    + "document.AddNewDoc." + OwnerList1.ClientID +".enabled = false;"
    + "alert('this should be: ' + document.AddNewDoc." + OwnerList1.ClientID +".enabled);" 
    + "}}";
    
    
    RefInc.Attributes.Add("onclick", mafonctionjs);
    je ne comprends pas pourquoi il y a une erreur, en plus en sauvegardant le code source en doc.html, il n'y a plus cette erreur, mais la fonction elle ne marche tjrs pas .

    merci encore pour ta patience et ton aide

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    c'est quoi l'erreur javascript?
    ton formulaire s'appelle bien AddNewDoc c'es case sensitive attention!!

  8. #8
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    ben en fait c'estait une erreur qui demandait { a une certaine ligne, mais maintenant je ne l'ai plus. j'ai juste enleve les deux alertes qui se trouvaient dans la fonction.

    mais seulement tjrs rien et pourtant j'ai bien fait attention si les noms donnes etaient bien respectes mais rien,...

    j'ai enlever l'attribut "enabled=false" du control et l'ai remplacer dans le code behind par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    OwnerList1.Attributes.Add("disabled", "disabled");
    mais malheureusement tjrs rien. pourtant en regardant le code source ca a l'air d'etre bon mais la je ne sais plus trop bien

  9. #9
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    c'est un control html ou serveur?

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    Remplace enabled par disabled pour voir dans ton code javascript.

  11. #11
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    bonjour,

    je suis encore avec mon probleme bizarre...

    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
    string mafonctionjs="function Enable_Disable();" 
    
    + "{"
    + "if(document.AddNewDoc." + RefInc.ClientID + ".checked == 'true')" 
    + "{"
    + "document.AddNewDoc." + OwnerList1.ClientID +".disabled = 'true';" 
    + "}"
    + "else"
    + "{"
    + "document.AddNewDoc." + OwnerList1.ClientID +".disabled = 'false';"
    + "}"
    +"}";
     
     
    RefInc.Attributes.Add("onclick", mafonctionjs);
    OwnerList1.Attributes.Add("disabled","true");
    
    c'est un control serveur. j'avais deja essayer de changer enabled en disabled ( comme dans le code plus haut ) mais ca ne change tjrs rien...

    voici ce que j'ai que je fais visualiser le code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <td><input id="RefInc" type="checkbox" name="RefInc" onclick="function Enable_Disable();{if(document.AddNewDoc.RefInc.checked == true){document.AddNewDoc.OwnerList1.disabled = true;}else{document.AddNewDoc.OwnerList1.disabled = false;}}" /></td>
        </tr>
        <tr>
         <td align="right">Owner:</td>
         <td><select name="OwnerList1" id="OwnerList1" disabled="true" style="width:250px;">
    ca a l'air correct mais comme rien ne marche...
    merci encore d'avance pour votre aide

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    tu as tout mis dans le client donc ta fonction javascript tu peux la remonter ce sera plus propre et ca éviter l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function Enable_Disable();{if(document
    parce que je pense que le ; ca ne le fait pas.
    mais quand tu dis ca ne marche pas tu dois avoir l'erreur javascript et le numéro de la ligne donc va dans le code html et essaye de voir la ligne incriminée.

  13. #13
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    j'ai enlever le ";" mais cela ne change rien et de plus je n'ai pas d'erreur c'est egalement que je trouve bizarre, pas d'erreur, pas de reponse, pas d'action, le neant...

    heu...par contre est ce que tu pourrais me dire qu'est ce que tu entends par remonter la fonction parce que je ne vois pas du tout comment je dois faire...

    merci encore

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    voici le code tester. les controls sont des controls serveurs.
    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
    string toto = "<script language=javascript>";
    toto += "function disabled2(){ ";
    toto += "var check = document.getElementById('" + Checkbox1.ClientID + "');";
    toto += "var bouton = document.getElementById('" + Button2.ClientID + "');";
    toto += "alert(check.checked);";
    toto += " if(check.checked) {";
    toto += "bouton.disabled='disabled';}";
    toto += " else {";
    toto += "bouton.disabled='';}";
    toto += " };";
    toto += "</script>";
    if (!ClientScript.IsClientScriptBlockRegistered("clientscript"))
    {
    ClientScript.RegisterClientScriptBlock( Checkbox1.GetType(),"clientscript", toto);
    }
     
    
    //Button1.Attributes.Add("onclick", toto);
    Checkbox1.Attributes.Add("onclick", "disabled2()");


  15. #15
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 150
    Points : 93
    Points
    93
    Par défaut
    re,

    merci effectivement ca marche, mais malheureusement je ne peux pas reellement dire pourquoi...

    en tous les cas je te remercie encore pour ta patience et ton aide.

    merci.

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 619
    Points
    1 619
    Par défaut
    si ca marche parce que je ne t'avais pas donné tous les éléments la 1ere fois. il manquait l'inscription de ton javascript dans la page et son appel. moi j'avais tout fait en même temps sur l'evenement onclick.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 17
    Dernier message: 08/06/2005, 14h52
  2. [TP] Comment activer la souris dans l'éditeur ?
    Par hannon dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 27/03/2005, 00h29
  3. comment activer l'aide en ligne
    Par saibe dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 11/01/2005, 14h23
  4. Réponses: 9
    Dernier message: 15/09/2004, 21h35
  5. Réponses: 2
    Dernier message: 12/02/2004, 13h07

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