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 MVC Discussion :

Utiliser Datepicker de JQuery UI


Sujet :

ASP.NET MVC

  1. #1
    Membre actif
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Points : 257
    Points
    257
    Par défaut Utiliser Datepicker de JQuery UI
    Bonjour,

    je souhaite utilise JQuery UI Datepicker pour mes champs dates.
    J'ai un problème au niveau des formats et du matching entre la valeur du datepicker sélectionnée et le datetime de mon model.

    Définition de mon Javascript (master page) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $(function () {
    	        $(".datepicker").datepicker({ firstDay: 1 });
    	        $(".datepicker").datepicker("option", "dateFormat", 'dd/mm/yy');
    	        $(".datepicker").datepicker("option", "showButtonPanel", true);
    	        $(".datepicker").datepicker("option", "buttonImage", '../../Content/Images/calendar2.gif');
    	        $(".datepicker").datepicker("option", "showOn", "both");
    	        $(".datepicker").datepicker("option", "buttonImageOnly", true);
    	    });
    Dans ma vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <td>
                        <%: Html.TextBoxFor(m => m.Date, new { @class = "datepicker", style = "width:70px;" })%>
                        <!--<%: Html.TextBox("Date", DateTime.Now.ToString("dd/MM/yyyy"), new { @class = "datepicker", style = "width:70px;" })%>-->
                        <%: Html.ValidationMessageFor(m => m.Date) %>
                    </td>
    Dans mon modele :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [Required]
            //[RegularExpression("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", ErrorMessage = "Format incorrect")]
            [Display(Name = "Date envoi")]
            [DataType(DataType.Date)]
            public DateTime? Date
            {
                get;
                set;
            }
    Lorsque je sélectionne une date avec mon calendrier (ex: 28/04/2011) et que je lance ma validation, l'input n'est plus remplit.
    Pourtant dans le code HTML, j'ai cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <input id="Date" class="datepicker hasDatepicker" type="text" value="18/05/2011" style="width:70px;" name="Date" data-val-required="Le champ Date envoi est requis." data-val="true">
    (a noter ma value).

    J'ai essayé plusieurs autres tentatives mais que des échecs.

    J'ai aussi posté sur le forum msdn [je en sais pas si j'ai le droit de le mettre](http://social.msdn.microsoft.com/For...c-42a448f7404c ) et on n'a pas avancé.

    L'avez vous déjà utilisé ? Avez vous une idée?

    @+

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Sans-doute un problème de format du datetime, dis moi ce qui se passes lorsque tu as saisie en date 11/12/2011

    => car je suis prêt à parier que mvc parse en natif avec avec un format mm/dd/yyyy et non dd/mm/yyyy comme tu le voudrais.

    => si c'est le cas, une solution est de créer une autre propriété en string .

  3. #3
    Membre actif
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Points : 257
    Points
    257
    Par défaut
    Bonjour,

    dans le topic msdn nous avons conclut que dd/mm/yy de jquery ne passe pas la validation.

    Non en natif c'est bien dd/MM/yyyy pour le datetime.
    Apriori je vais devoir me contenter de mettre JQuery UI en mm/dd/yy pour passer la validation et avoir un string du coté de mon model (éventuellement avoir une variable datetime aussi...)
    Solution horrible (format anglais pour mon site français et string dans le model) mais qui re-remplit le input...

    Question : Y'a-t-il moyen de vérifier sur le model que la date est une date valide ? (pas qu'avec une REGEX mais avec un parse sur un datetime et une exception éventuelle ?)

  4. #4
    Membre actif
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Points : 257
    Points
    257
    Par défaut
    Bon.

    Cette solution ne convient pas à mon client ("Ce n'est pas naturel de taper une date comme ça") donc il faut que je trouve un autre calendrier...
    En connaissez vous un bien ?

  5. #5
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2010
    Messages : 119
    Points : 202
    Points
    202
    Par défaut
    bonjour,
    Moi j'utilise telerik extention pour asp.net MVC. Il fournit plusieurs contrôle dont un calendar et un datepicker. Je les utilise pour remplir des champs de type datetime (dans ma BD) et je n'ai pas eu de probleme jusqu'à présent.
    Tu trouvera plus d'info et une démonstration sur leur site.
    Attention la licence pour une utilisation à des fin commercial est payante...
    cordialement.

Discussions similaires

  1. [UI] Utilisation datepicker jQuery
    Par Arendelle dans le forum jQuery
    Réponses: 2
    Dernier message: 27/05/2015, 11h50
  2. utilisation asyncrone avec jQuery
    Par bucheron007 dans le forum APIs Google
    Réponses: 1
    Dernier message: 29/04/2009, 00h04
  3. aide utilisation datepicker
    Par nelob dans le forum jQuery
    Réponses: 1
    Dernier message: 31/03/2009, 11h38
  4. Utiliser le plugin jQuery.history
    Par SpIrIt505050 dans le forum jQuery
    Réponses: 1
    Dernier message: 19/02/2009, 11h17
  5. [JQuery] Utilisation d'Interface Jquery Sortable
    Par dl_jarod dans le forum jQuery
    Réponses: 2
    Dernier message: 26/08/2008, 14h59

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