2012-10-26 1 views
0

Je souhaite filtrer la base de la plage de dates lors du chargement de la page et l'afficher sur la page. la date est en cours de remplissage automatique, mon problème est qu'il n'est pas capable de le filtrer lors de l'utilisation du document prêt dans JQUERY, aucune idée?Filtrer ou rechercher une valeur lors du chargement initial des pages dans Jquery

code:

   <label for="from">Start date:</label> 

       <input type="text" style="width: 196px;" id="from" /> 

       <label for="to">End date:</label> 

       <input type="text" style="width: 196px;" id="to" /> 

//function for datepicker and date range 


       $(function() { 
       $("#from").datepicker({ 
        defaultDate: "-3w", 
        minDate: "-3w", 
        changeMonth: true, 
        numberOfMonths: 1, 
        onSelect: function(selectedDate) { 
         $("#to").datepicker("option", "minDate", selectedDate); 
        } 
       }).datepicker('setDate', '-3w'); 
       $("#to").datepicker({ 
        defaultDate: "+1w", 
        maxDate: "currentText", 
        changeMonth: true, 
        numberOfMonths: 1, 
        onSelect: function(selectedDate) { 
         $("#from").datepicker("option", "maxDate", selectedDate); 
        } 
       }).datepicker('setDate', '+1w'); 
      }); 

fonction attemping .... pour Fitler lorsque le chargement des pages

$(document).ready(function() { 
       $filter = new Array(); 
       $from = new Date(Date.parse($("#from").datepicker('setDate', '-3w'))); 
       $to = new Date(Date.parse($("#to").datepicker('setDate', 'currentText'))); 
       $to = $to.setDate($to.getDate() + 1); 

       if ($("#from").val()) { 

        $filter.push({ field: "DateEnrolled", operator: "islessthanorequalto", value: $to }); 
       } 
       if ($("#to").val()) { 

        $filter.push({ field: "DateEnrolled", operator: "isgreaterthanorequalto", value: $from }); 
       } 
       var grid = $("#grid").data("kendoGrid"); 
       grid.dataSource.load($filter); 
      }); 
     }); 
+0

L'exemple mis à jour et le violon ne fonctionnaient pas pour vous? – VtoCorleone

Répondre

0

Essayez

grid.dataSource.filter($filter) 

au lieu de

grid.dataSource.load($filter) 

Mise à jour 11.02.2012

Here's a fiddle with what you're attempting to do.

J'ai fait l'action de prendre du filtre sur une presse bouton au lieu de PageLoad afin que vous puissiez voir les données avant et après l'action du filtre.

Vous devez créer un objet de filtre logique "et" et y ajouter vos filtres.

1) Créer le "et" objet filtre

var customFilter = { 
    logic: "and", 
    filters: [] 
}; 

2) Ajouter les filtres à l'objet

customFilter.filters.push({ 
    field: "DOB", 
    operator: "isgreaterthanorequalto", 
    value: date1 
}); 

customFilter.filters.push({ 
    field: "DOB", 
    operator: "islessthanorequalto", 
    value: date2 
}); 

3) Réglez le filtre sur les données de la grille source

$("#testGrid").data("kendoGrid").dataSource.filter[customFilter]); 

Désolé pour la première réponse étant si paresseux. J'étais pressé ce jour-là et j'ai juste essayé de trouver quelque chose pour aider. J'espère que cela aide mieux.

+0

ne fait pas l'affaire –

+0

Je viens de mettre à jour la réponse pour donner une explication plus approfondie. Faites-moi savoir si cela ne fonctionne pas. – VtoCorleone

Questions connexes