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

Dotnet Discussion :

Le Enable à false -> passage des données en POST?


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut Le Enable à false -> passage des données en POST?
    J'ai un petit souci.

    J'ai un textBox désactivé (Enable = false) dont je modifie la valeur côté client avec un javascript.

    Après une requête utilisateur, la valeur n'est pas passée dans le post...
    Et quand je récupère le contrôl côté serveur il contient l'ancienne valeur.

    Savez-vous comment faire pour que la nouvelle valeur passe?

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    et la propriété Readonly?

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par _Ulysse_ Voir le message
    J'ai un petit souci.

    J'ai un textBox désactivé (Enable = false) dont je modifie la valeur côté client avec un javascript.

    Après une requête utilisateur, la valeur n'est pas passée dans le post...
    Ce qui est logique, puisque pour ASP.Net son contenu est immutable dans ce cas.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut
    La propriété ReadOnly est bien à false.

    Merci pour vos réponses!

    Si ce comportement est normal (Enabled = false => ne passe plus les données dans le POST) il est chiant et surtout con! C'est pas précisé dans la doc d'ailleurs.

    On peut bien vouloir changer une valeur côté client sans que l'utilisateur puisse la saisir mais juste la lire! Et pouvoir l'enregistrer une fois mise à jour par le javascript.
    Comment faire cela proprement en .NET?
    Ils ont oublié qu'on pouvait faire du javascript chez microsoft?

    Et ne me dites pas d'ajouter des Contrôles en hidden, c'est crade.

    Un autre bricolage consisterais à activer les textbox côté client juste avant le post... mais c'est crade!

    Mon utilisateur ne doit pas pouvoir saisir la valeur en question car celle-ci est calculée côté client et doit respecter une règle de calcul, mais il doit pouvoir la lire et moi je dois pouvoir l'enregistrer. Je ne vais quand même pas calculer les valeurs pour les afficher, les calculer côté client et les recalculer encore pour les enregistrer... 3 fois le même calcul...

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par _Ulysse_ Voir le message
    La propriété ReadOnly est bien à false.

    Merci pour vos réponses!

    Si ce comportement est normal (Enabled = false => ne passe plus les données dans le POST) il est chiant et surtout con!
    Ce n'est absolument pas con et même assez logique : il serait au contraire très con de passer en allez-retour sur le réseau des données qui sont dans la majorité des cas calculées coté serveur.

    On peut bien vouloir changer une valeur côté client sans que l'utilisateur puisse la saisir mais juste la lire! Et pouvoir l'enregistrer une fois mise à jour par le javascript.

    Comment faire cela proprement en .NET?
    Peut être en passant la donnée dans le ViewState (pas sur, je n'ai pas fait de web depuis très longtemps).

    Si je comprends bien tu veux calculer une valeur coté client, à partir d'une info fournit par le client, l'afficher et le retourner la valeur calculée vers le serveur ?

    L'autre possibilité est de calculer la valeur coté serveur et l'afficher après.

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    La propriété ReadOnly est bien à false.
    bah justement, pourquoi tu utilises enabled=false, plutôt que readonly, si l'objectif est de bloquer la saisie utilisateur?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    bah justement, pourquoi tu utilises enabled=false, plutôt que readonly, si l'objectif est de bloquer la saisie utilisateur?
    Effectivement, bonne remarque.
    J'utilisais cela pour griser le champ de manière à ce que ce soit plus clair pour l'utilisateur. Avec le ReadOnly à true, il passe la valeur dans le post.
    Mais la valeur renvoyée par le post ne renseigne pas mon contrôl côté serveur.

    En fait, j'ai pu le faire marcher en mettant le Readonly à true dans le render au lieu du CreateChildControl comme cela, il alimente bien le contrôl avec les données du POST.

    Merci pour vos réponses, j'ai résolu mon pb

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 40
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Si je comprends bien tu veux calculer une valeur coté client, à partir d'une info fournit par le client, l'afficher et le retourner la valeur calculée vers le serveur ?
    C'est à peu près cela.
    Citation Envoyé par Bluedeep Voir le message
    L'autre possibilité est de calculer la valeur coté serveur et l'afficher après.
    Je le fais déjà, mais c'est pas suffisant.
    Cela mérite une explication, Imaginons que sur ma page j'ai 3 valeurs : A, B et C. A et B sont saisies/modifiables par l'utilisateur. C = A + B et n'est pas saisissable par l'utilisateurs. Les Valeurs sont en base de données.
    Si A et/ou B ne sont pas saisie, je les considère à 0.

    Voici le fonctionnement voulu :

    1)L'utilisateur arrive sur la page, je charge mes données côté serveur.
    Dans le cas où C est en base, je remonte la donnée sinon je la calcule côté serveur pour l'affichage. (pas de souci là dessus)

    2)L'utilisateur modifie la valeur de A et/ou B ce qui déclenche mon javascript qui met à jour la valeur de C dans ma page côté client. (pas de souci là dessus)

    3)L'utilisateur clic sur enregistrer, les nouvelles valeurs de A et B passent dans la requête mais pas la nouvelle valeur de C...

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

Discussions similaires

  1. passage des données entre pages jsp
    Par franco9 dans le forum Struts 2
    Réponses: 0
    Dernier message: 10/07/2012, 10h36
  2. [Débutant] passage des données entre les pages
    Par midialzer dans le forum Silverlight
    Réponses: 1
    Dernier message: 11/06/2012, 14h26
  3. Passage des données data/nomClass.res vers fichiers SQL
    Par gabs77 dans le forum W4 Express
    Réponses: 7
    Dernier message: 15/07/2008, 11h32
  4. html:image et passage des données
    Par fatenatwork dans le forum Struts 1
    Réponses: 12
    Dernier message: 05/10/2007, 16h13
  5. le passage des données entre les onglets
    Par jack_1981 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/05/2007, 01h12

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