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 :

ASP.NET et BLAZOR Recupérer des données d'une API avec filtre date


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2018
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2018
    Messages : 75
    Points : 49
    Points
    49
    Par défaut ASP.NET et BLAZOR Recupérer des données d'une API avec filtre date
    Bonjour à tous,

    j'ai une page qui m'affiche des données avec 2 champs select date.

    Comment faire dans mon controller pour mettre des filtres sur les dates ? qui correspondraient aux champs start and end..
    voici mon bout de code dans l'API
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // GET: api/Lots
            [HttpGet]
            public async Task<ActionResult<IEnumerable<Lot>>> GetLots()
            {
                return await _context.Lots.ToListAsync();
            }
    mon modèle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    namespace ASE.Models
    {
        public class Lot
        {
            [Required]
            public int LotID { get; set; }
     
            public DateTime Start { get; set; }
            public DateTime End { get; set; }
            public string? Numero { get; set; }
            public int? Trieurs { get; set; }
        }
    }
    ma page razor
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
     
    <div class="row">
        <div class="col-lg-12">
            <div class="card">
                <div class="card-header">
                  <div class="form-inline">    
                      <EditForm Model="@ListLots" OnValidSubmit="@HandleValidSubmit">
                        <input type="datetime" @bind="dateDebut" placeholder="Date de début" class="form-control" id="DebDateDefaut">
                        <div class="input-group-append"><i class="fa fa-calendar"></i></div>    
                            <input type="text"  @bind="dateFin" placeholder="Date de fin" class="form-control" id="FinDateDefaut">
                        <div class="input-group-append"><i class="fa fa-calendar"></i></div>
     
                        <div class="input-group-append">
                        <button type="submit" class="btn btn-light ms-2">Rechercher</button>
                        </div>
                      </EditForm>
                  </div> 
                </div>
                 <div class="card-body">
                     <table id="file-datatable" class="display nowrap" width="100%">
                        <thead>
                            <tr>
                            <th>Date début</th>
                            <th>Date fin</th>
                            <th>Numéro</th>
                            <th>Trieurs</th>
                            </tr>
                        </thead>
                        <tbody>
                            @foreach(var lot in ListLots)
                            {
                                 <tr @onclick="() => EditLot(lot.LotID)">
                                        <td>@lot.Start</td>
                                        <td>@lot.End</td>
                                        <td>@lot.Numero</td>
                                        <td>@lot.Trieurs</td>               
                                    </tr>
     
                            }
                            </tbody>
                     </table>
                 </div>
            </div>
        </div>
    </div>
    @code {
     
        private List<Models.Lot> ListLots;
        [Parameter] public DateTime dateDebut { get; set; }
        [Parameter] public DateTime dateFin { get; set; }
     
        protected override async Task OnInitializedAsync()
        {
            try
            {
                dateFin = DateTime.Now;
                ListLots = await Http.GetFromJsonAsync<List<Models.Lot>>("api/Lots");
                StateHasChanged();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
     
        }
         public void HandleValidSubmit()
        {
            var ListLots =  Http.GetFromJsonAsync<List<Models.Lot>>("api/Lots/StartDebLot='"+dateDebut+"'&&StartFinLot='"+dateFin+"'");
     
            // Process the valid form
        }
    dans ma fonction HandleValidSubmit je ne sais pas comment passer mes données date en paramètre...
    merci beaucoup pour votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Alternant
    Inscrit en
    Octobre 2019
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 48
    Points : 66
    Points
    66
    Par défaut
    Bonjour,

    Il te suffit simplement de récupérer les valeurs de tes dates et d'ensuite l'appeler dans tes repository
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public async Task<ActionResult<IEnumerable<Lot>>> GetLotByDate(DateTime dateDebut, DateTime dateFin, int numero)
    {
      IEnumerable<Lot> maList = await _context.Lots.Where( c => c.Lots.numero == numero & c.Lots.dateDebut == dateDebut & c.Lots.dateFin == dateFin).ToListAsync();
      return maList;
    }
    A toi d'adapter la condition suivant le résultat que tu souhaites obtenir !

Discussions similaires

  1. Récupèrer des données d'une API avec Retool et JS
    Par smvezoo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/05/2022, 16h08
  2. ASP.Net : Cycle de vie des données affichées
    Par chaillom dans le forum Développement Web avec .NET
    Réponses: 3
    Dernier message: 16/03/2010, 13h17
  3. [Débutant] Recupérer des données d'une matrice
    Par niolon dans le forum MATLAB
    Réponses: 4
    Dernier message: 22/10/2007, 19h49
  4. Réponses: 13
    Dernier message: 03/08/2007, 10h07
  5. Réponses: 2
    Dernier message: 28/05/2006, 23h31

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