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 :

[MVS 2005/SQL Server 2005] Question sur le Request.form


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut [MVS 2005/SQL Server 2005] Question sur le Request.form
    Bonjour à tous,

    je débute en .NET depuis une touuuuuuute petite semaine, et je travaille sur une appli Web en ASP.NET (en communication avec une BDD SQL Server).
    J'ai deux questions :

    1/ J'ai le problème suivant sur certaines pages : lorsque l'attribut Enabled de mes DropDownList est à false, Request.form[MyDropDownList.UniqueID] est null, bien que MyDropDownList.SelectedValue ait une valeur.
    Pouvez vous m'expliquer pourquoi ?

    En l'occurence, j'ai pu remplacer les Request.form[MyDropDownList.UniqueID] par des MyDropDownList.SelectedValue, mais c'est un coup de chance.

    2/ Je dois afficher/cacher un élément selon la valeur selectionnée d'une liste déroulante. J'ai un script à lancer côté client, car je voudrais éviter d'avoir un postback de ma page à chaque changement de valeur de la liste. J'ai donc utilisé l'événement Javascript onchange, que j'ai ajouté à mon champ sur le PageLoad (avec Attributes.Add), et qui appelle une fonction Javascript qui va montrer/cacher l'élément (je n'avais pas très envie de me lancer dans l'AJAX, une chose à la fois). J'ai rencontré le problème suivant : si mon élément est en visible=false dans mon code ASP, il n'est pas généré, et donc ma fonction Javascript ne peut pas récupérer son ClientID pour le faire apparaître. J'ai donc laissé tomber l'attribut ASP Visible et j'ai modifié l'HTML au PageLoad pour mettre style.visibility=hidden sur mon champ.
    Ca marche bien, par contre ca me paraît un peu...euh...rustique. Y'a-t-il une manière plus propre de résoudre ce problème ?

    Merci d'avance

  2. #2
    Membre extrêmement actif
    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
    Par défaut
    à mon avis si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Request.Form[MyDropDownList.UniqueID]=null
    c'est que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyDropDownList.UniqueID != MyDropDownList.ID
    .essaye de voir.
    si tu mets un control serveur à visible=false il n'apparaitra pas dans ta page.
    le truc si tu l'entoures d'un panel et c'est lui que tu mets à visible=false ou true. effectivement c'est un peu artisanal si tu veux le faire en javascript. ce que tu as fait me parait être la bonne solution.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Merci de tes réponses.

    Effectivement le .ID est différent du .UniqueID. Mais pourquoi ce dernier est-il null quand on désactive la liste ?
    Comme je l'ai dit j'ai du remplacer toutes les occurences de Request.form[DDL.UniqueID], or on m'a dit qu'il y avait une différence entre le fait de passer par Request.form est celui de prendre la DDL directement (au niveau des evenements déclenchés non ?), donc il faudra que je fasse attention et que je prenne ce changement en compte dans ma phase de test. Ca m'embeterait d'avoir des regressions à cause de ca.

  4. #4
    Membre extrêmement actif
    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
    Par défaut
    les request.form c'est en asp. il est plus simple de récupérer la valeur de ton control en faisant un selectedValue.
    bah si tu mets ta propriété à visible=false il est normal que vu qu'il n'est visible tu ne puisses pas accéder à une valeur donc ca te renvoie null ce qui n'est pas illogique.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    381
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 381
    Par défaut
    Citation Envoyé par rattlehead Voir le message
    bah si tu mets ta propriété à visible=false il est normal que vu qu'il n'est visible tu ne puisses pas accéder à une valeur donc ca te renvoie null ce qui n'est pas illogique.
    Certes, mais j'eusse (oh le beau !) attendu aussi que le selectedValue me balance un null aussi dans ce cas.
    Bref, ca marche comme ca donc, merci beaucoup

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

Discussions similaires

  1. [SQL server 2005] SQL server en trouve pas ma procédure stockée
    Par teddyalbina dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/11/2010, 14h40
  2. [SQL Server 2005] SQL Server se limite en mémoire
    Par Jinroh77 dans le forum Administration
    Réponses: 18
    Dernier message: 12/11/2010, 11h21
  3. Réponses: 4
    Dernier message: 04/02/2008, 18h09
  4. sql server 2005 => SQL SERVER 2000
    Par subzero82 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/11/2006, 17h20
  5. [VB.NET 2005][SQL SERVER 2005] Pb d'insertion en BdD
    Par jhary07 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/01/2006, 08h53

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