none
recherche par dates

Réponses

  • Bonjour,

    J'ai trouvé déjà la solution :)

     public ActionResult Rech(DateTime? TextDate1, DateTime? TextDate2)
            {
                if (TextDate1 == null || TextDate2 == null)
                {
                    return View(_Context.User.ToList());
                }
                return View(_Context.User.Where(m=> m.DateAdh > TextDate1 && m.DateAdh < TextDate2).ToList());
               
      }
    (J'ai déjà deux pseudo : marwa58 et marwa5800)


    • Modifié marwa58 samedi 22 septembre 2012 13:27
    • Marqué comme réponse marwa5800 samedi 22 septembre 2012 13:29
    samedi 22 septembre 2012 13:24

Toutes les réponses

  • Bonjour,

    Une recherche sur quoi exactement ? Une base de données ? Si oui quelles sont les tables mises en jeu ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    dimanche 26 août 2012 20:59
  • Oui je veux afficher, dans un table, les données de la table "user" de ma base de donnée suivant la recherche que je veux faire (l'intervalle de dates)  
    dimanche 26 août 2012 22:22
  • Bonjour,

    Voir peut-être un exemple sur la page http://www.4guysfromrolla.com/articles/011911-1.aspx et en particulier ProductsController qui montre comment le filtre est appliqué ou pas en fonction des différents critères. Sinon indiquer peut-être si vous avez commencé qq chose et quel est le point qui coince...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    lundi 27 août 2012 11:19
  • Bonjour,

    Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ? Dans l'affirmative, pourriez-vous partager avec nous la solution, afin que d'autres personnes avec le même problème puissent profiter de cette solution ?

    Désormais, nous marquons les solutions proposées. N'hésitez pas à revenir et supprimer la réponse marquée si la solution n’est pas correcte. Merci !

    Cordialement,

    Aurel


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    mercredi 12 septembre 2012 11:52
  • Bonjour,

    Non j'ai pas encore trouvé la solution ! j'ai besoin d'aide s'il vous plait !!

    mardi 18 septembre 2012 09:38
  • Bonjour,

    Pour pouvoir vous aider plus efficacement pouvez-vous indiquer explicitement où vous en êtes actuellement et quel est le point de blocage que vous rencontrez ?

    Pour l'instant j'ai supposé que le problème pourrait être que l'un des deux bornes ne s'appliquent pas si elle n'est pas saisie et l'article que j'ai mentionné précédemment indiquait comment appliquer ou pas un critère selon qu'il est saisi. Difficile d'en dire plus sans savoir exactement quel est le problème que vous rencontrez (c'est un problème de mise en oeuvre de MVC ou vous avez effectivement un problème inconnu concernant un filtre sur les dates, peut-être un problème de format de dates ???)


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mardi 18 septembre 2012 10:01
  • Bonjour,

    J'utilise Asp.net Mvc et je veux savoir comment je peux faire une recherche par date à partir de deux textBox et afficher le résultat de la recherche?

    mardi 18 septembre 2012 10:26
  • Ok donc cela semble être un problème plus fondamental de mise en oeuvre (vous n'avez rien commencé du tout ?) qui risque d'être un peu difficile à traiter dans un forum. A défaut de comprendre le texte malheureusement en anglais, avez vous étudié et essayé le code du lien que j'avais posté précédemment ?

    Le principe général est donc :
    - étape 1 : de créer un modèle qui est destiné à l'affichage dans la vue MVC. Ce modèle intègre les paramètres qui vont permettre de filtrer les données (les deux dates dans votre cas)
    -  étape 2 : l'action Filterable va récupérer les paramètres en provenance de la vue et les utiliser pour filtrer les données (avec LINQ, vous utilisez LINQ ?)
    - étape 3 : création de la vue avec ce que vous voulez afficher
    - étape 4 : ajout dans la vue de la partie filtrage des données

    A l'exécution la vue affiche donc les données, au postback, l'action récupère automatiquement les données postées pour le filtre sous forme de paramètres et les applique donc éventuellement pour renvoyer la vue et afficher les données filtrées...

    J'ai essayé de voir vite fait si je trouve un tutoriel en français mais rien pour le moment. Si le code et son explication sommaire ci-dessus ne suffisent pas à démarrer j'essaierai éventuellement de faire un exemple tout simple.

    Si vous n'avez rien commencé pour l'instant, commencez déja par simplement afficher un modèle tout simple avec par exemple une liste d'objets avec un libellé et une date (c'est ok pour ça ?). Ensuite ajoutez dans votre modèle une date debut et fin et la saisie correspondante dans la vue et vérifier déjà que vous récupérez correctement les paramètres. Ajoutez ensuite le filtre sur vos données (qui peuvent être une simple liste en dur le temps que vous mettiez au point le principe) pour que le filtre deviennent finalement opérationnel. Si cela coince toujours, j'essaierai ce soir de vous créer moi-même un exemple tel que je viens de le décrire...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mardi 18 septembre 2012 11:35
  • Donc je propose par exemple qq chose comme...

    Un modèle avec une classe Data pour représenter les items (un texte plus une date) et une classe Model pour exposer les données qui seront présentes à l'affichage avec notamment debut et fin pour définir les bornes du filtre et GetData pour récupérer les données filtrées. Une "vraie" appli utiliserait Entity Framework pour récupérer les données dans une base pratiquement dans les mêmes conditions.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    namespace MvcApplication1.Models
    {
        public class Data
        {
            public string Label { get; set; }
            public DateTime Date { get; set; }
        }
        public class Model
        {
            public DateTime? debut;
            public DateTime? fin;
            public IEnumerable<Data> GetData()
            {
                var l = new List<Data>(){
                    new Data { Label = "T-1", Date = DateTime.Today.AddYears(-1)},
                    new Data { Label = "T", Date = DateTime.Today.AddYears(0) },
                    new Data { Label = "T+1", Date = DateTime.Today.AddYears(1) }
                };
                var q = l.AsQueryable();
                if(debut!=null) q=q.Where(m=>m.Date>=debut);
                if(fin!=null) q=q.Where(m=>m.Date<=fin);
                return q.ToList();
            }
        }
    }

    La vue se contente d'afficher les données du modèle avec notamment deux zones de saisie pour le filtre :

    @model MvcApplication1.Models.Model
    @{
        ViewBag.Title = "Data";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    <h2>Data</h2>
    <p>
    @using (Html.BeginForm())
     {
         @Html.TextBoxFor(m => m.debut);
         @Html.TextBoxFor(m => m.fin);
         <input type="submit" />
     }
    </p>
    <table>
    @foreach (var item in Model.GetData())
    {
        <tr>
            <td>
                @item.Label
            </td>
            <td>
                @item.Date
            </td>
        </tr>
    }
    </table>

    Et donc le contrôleur est activé quand on va sur /data, récupère éventuellement debut et fin (donc absent la première fois, présent ensuite si saisie et appuie sur le bouton "submit") pour paramétrer le modèle dont la fonction GetData retournera les données filtrées qui seront alors affichées dans la vue :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    namespace MvcApplication1.Controllers
    {
        public class DataController : Controller
        {
            //
            // GET: /Data/
            public ActionResult Index(DateTime? debut, DateTime? fin)
            {
                var m = new MvcApplication1.Models.Model();
                m.debut = debut;
                m.fin = fin;
                return View(m);
            }
        }
    }

    Essayez peut-être de reproduire cette maquette avant d'intégrer ce principe dans du code que vous avez peut-être commencé ? Si comme je le pensais au départ (comme votre demande concernait vraiment le filtre en MVC plus qu'apparemment une aide pour démarrer en MVC), vous avez un problème particulier dans du code déjà écrit merci de toujours préciser le problème plutôt que de demander une aide générale, car à mon avis, fournir un exemple de plus ne permet ni de comprendre ce qui n'allait pas, ne traite pas forcément le point qui vous posait problème, peut présenter une autre façon de faire ni forcément moins bonne ni meilleure mais différente ce qui complique encore les choses.

    Si vous êtes nouveau en MVC et étiez bloquer par la recherche, le point clé est que le modèle utilisé par votre page peut contenir tout ce qui est utile au fonctionnement de la page (par exemple les valeurs pour les filtres) et pas seulement des données comme les exemples que vous avez peut-être vus jusqu'à présent ?

    Est-ce que cela répond à votre problème ?


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    mercredi 19 septembre 2012 11:05
  • Bonjour,

    Est-ce que vous avez testé les solutions proposées ? Merci de partager avec nous les résultats, afin que d'autres personnes avec le même problème puissent profiter de cette solution.

    Cordialement,

    Aurel


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

    vendredi 21 septembre 2012 12:35
  • Bonjour,

    J'ai trouvé déjà la solution :)

     public ActionResult Rech(DateTime? TextDate1, DateTime? TextDate2)
            {
                if (TextDate1 == null || TextDate2 == null)
                {
                    return View(_Context.User.ToList());
                }
                return View(_Context.User.Where(m=> m.DateAdh > TextDate1 && m.DateAdh < TextDate2).ToList());
               
      }
    (J'ai déjà deux pseudo : marwa58 et marwa5800)


    • Modifié marwa58 samedi 22 septembre 2012 13:27
    • Marqué comme réponse marwa5800 samedi 22 septembre 2012 13:29
    samedi 22 septembre 2012 13:24