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 :

Problème de date avec GridView


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut Problème de date avec GridView
    Bonjour à tous,
    J'ai un problème étrange avec une GridView avec les dates.
    J'ai saisi une date 04/10/2008 (par exemple) et quand je valide ma saisie, j'ai 10/04/2008 !
    Les trucs étranges sont que :
    - ca arrive sur le Serveur (W2003 US mais paramétré en Français pour les dates) mais pas sur mon PC (XP Pro FR).
    - ca arrive pour certaines dates mais pas d'autres, sans qu'il n'y ait de logique apparement (il doit bien y en avoir une mais je ne trouve pas) : le 1er chiffre > 12 (donc forcément un jour) ou quelque chose comme ca...

    Pour info, je bosse sur une base Access et que je sais en direct dans ma base, aucun problème...
    Dans mon champ est codé comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:BoundField DataField="DATELIMITEENRACTION" HeaderText="Date mise en production prévue "
    SortExpression="DATELIMITEENRACTION" ApplyFormatInEditMode="True" DataFormatString="{0:d}" HtmlEncode="False" />
    Par avance, merci de votre aide.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Par défaut
    As t un formattage particulier sur ton champ ?

    Sinon tu le forces et ça devrait passer.

    C'est vrai que les dates c'est quand même casse bonbon !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par EMC51 Voir le message
    As t un formattage particulier sur ton champ ?

    Sinon tu le forces et ça devrait passer.

    C'est vrai que les dates c'est quand même casse bonbon !
    C'est à dire un formattage particulier ?
    Comme indiqué dans mon 1er post, ce champ avait DataFormatString="{0:d}" comme format (j'ai aussi essayé dd/MM/yyyy mais pas de changement)...
    Y'a t'il un autre "endroit" ou l'on peu spécificier le format de la date dans un GridView ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 249
    Par défaut
    regarde du côté de la propriété htmlEncode qui doit être à false (par défaut elle doit être à true...)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par EMC51 Voir le message
    regarde du côté de la propriété htmlEncode qui doit être à false (par défaut elle doit être à true...)
    C'est bien à False (j'avais mis le code du champ dans mon 1er post...)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Bonjour à tous,
    Je me permet de relancer car ce problème empêche les utilisateurs d'utiliser la page en question depuis le début de la semaine. Ca commence à faire long...

    J'ai encore essayé 2/3 trucs (de mettre le champ en TemplateField mais ca plante, je ne comprend pas pourquoi mais je cherche ) mais rien y fait... Ca marche sur mon PC de développement (site en local donc) mais pas sur le serveur...

    La seule solution que je vois pour régler le pb au plus vite, serait de gérer moi-même les jj, mm et année et créant 3 champs et en le concaténant avant enregistrement dans la base.
    Seulement, j'ai plusieurs champs date dans cette gridview et par conséquent ca va être super long (et relativement compliqué) à faire...
    Je préférerais donc trouver la cause du problème et sa solution plutôt que de développer une usine à gaz...

    Par avance, merci.

  7. #7
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Je pense que passer ton serveur en FR suffit pas.
    Tu dois le faire dans le web.config de ton appli web aussi

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Je pense que passer ton serveur en FR suffit pas.
    Tu dois le faire dans le web.config de ton appli web aussi
    J'ai bien culture="fr-FR" dans le web.config sur mon serveur.
    Ci-dessous, la ligne complète de mon web.config :
    <globalization fileEncoding="iso-8859-1" requestEncoding="utf-8" responseEncoding="utf-8" culture="fr-FR" />

    Mais peut-être y a t'il autre chose à faire ?

  9. #9
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    il manque le uiCulture qui justement s'occupe des dates entre autres

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    il manque le uiCulture qui justement s'occupe des dates entre autres
    J'y croyais... Mais non ca ne change rien.

    J'ai bien rajouté uiCulture="fr-FR" mais le problème est toujours la : je saisi 04/10/2008 et quand je valide ma ligne de la GridView, 10/04/2008 s'affiche !
    Je vais devenir cinglé...

    Merci quand même.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Bonjour,
    Je me permet de faire remonter mon post, car je n'ai toujours pas trouvé de solution...

  12. #12
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    bonjour,
    essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-FR")

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par paradeofphp Voir le message
    bonjour,
    essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-FR")
    J'ai rajouté cette ligne dans mon Page_Init mais hélas, ca ne change rien...

  14. #14
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Bonjour,

    J'ai le même problème. En ce qui me concerne ça vient de la version de l'OS serveur : Windows 2003 Server Web Edition US. J'ai eut beau paramétrer le format date rien n'y change, ni la culture sur les sites.
    Le problème se pose exclusivement quand je fais un 'ToString()' d'une date à un moment du traitement.
    Toujours est il que je travaille qu'avec des chaines formatées c'est un peu contraignant mais bon .
    Petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       Public Function TraitementDate(ByVal oDate As Date) As String
            Dim sResult As String
            Dim sHost As String = My.Request.Url.Host.ToString()
            If sHost="MonServerLocal" Then
                sResult = Format(oDate, "dd/MM/yyyy HH:mm:ss")
            Else
                sResult = Format(oDate, "MM/dd/yyyy HH:mm:ss")
            End If
            Return sResult
        End Function
    Si ça peut t'aider

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Citation Envoyé par mafyoso Voir le message
    Bonjour,

    J'ai le même problème. En ce qui me concerne ça vient de la version de l'OS serveur : Windows 2003 Server Web Edition US. J'ai eut beau paramétrer le format date rien n'y change, ni la culture sur les sites.
    Le problème se pose exclusivement quand je fais un 'ToString()' d'une date à un moment du traitement.
    Toujours est il que je travaille qu'avec des chaines formatées c'est un peu contraignant mais bon .
    Petit exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       Public Function TraitementDate(ByVal oDate As Date) As String
            Dim sResult As String
            Dim sHost As String = My.Request.Url.Host.ToString()
            If sHost="MonServerLocal" Then
                sResult = Format(oDate, "dd/MM/yyyy HH:mm:ss")
            Else
                sResult = Format(oDate, "MM/dd/yyyy HH:mm:ss")
            End If
            Return sResult
        End Function
    Si ça peut t'aider
    Ca "rassure" de savoir que je ne suis pas seul à avoir un problème de format de date avec une config Windows 2003 Server Web Edition US.

    Ceci dit, la fonction que me tu me donne permet dans changer le format en fonction de la machine et dans mon cas, même si je force le format à dd/MM/yyyy (dans ma gridview) ca ne marche pas :
    Je saisie : 31/12/2007 -> ok j'ai bien 31/12/2007 après l'update
    mais si je saisie : 04/10/2007 -> j'ai 10/04/2007 après l'update !
    Alors que ni 04, ni 10 ne sont supérieurs à 12 (ce qui aurait pu expliquer l'inversion jour/mois, encore que, si je met 13 comme mois, je devrais avoir un message d'erreur et non une inversion jour/mois automatique...
    Je ne sais pas d'ou vient le problème :
    - de IIS (visiblement on ne peut pas paramètrer la langue...)
    - de Access
    - de Windows 2003 Serveur WebEdition US
    - de ma page (MasterPage avec un ContentPlaceHolder)
    - de mon gridview
    - autre ?

  16. #16
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    La seule difference que je constate entre ma config' et la tienne c'est que je travaille sur SQL Server . Donc peut etre faut il fouiller un peu côté Access .

    A bientôt

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 98
    Par défaut
    Ca y est, j'ai trouvé la solution !

    Il fallait en fait spécifier DateTime comme type (j'avais "empty") dans les paramètres avec des dates, ceci dans la requête d'update de mon SqlDataSource liée à ma GridView.

    J'avais, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Parameter Name="DATELIMITEENRACTION" />
    Il fallait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Parameter Name="DATELIMITEENRACTION" Type="DateTime" />

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

Discussions similaires

  1. [C#] Problème de Date avec Access
    Par k2vin dans le forum Accès aux données
    Réponses: 4
    Dernier message: 12/12/2006, 15h57
  2. Problème de date avec JAVA & Oracle
    Par bobic dans le forum JDBC
    Réponses: 2
    Dernier message: 02/11/2006, 12h21
  3. [FPDF] Problème de date avec fdpf
    Par axel-erator dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/05/2006, 23h05
  4. Problème de date avec un trigger PL/SQL
    Par fluec-wa dans le forum PL/SQL
    Réponses: 6
    Dernier message: 18/01/2006, 14h56
  5. Encore un probléme de date avec TADO !
    Par bNoureddine dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/02/2004, 18h22

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