2017-09-25 1 views
0

articles: [{ xtype: 'form', sType: { marginTop: '10px' }, mise en page: { Type: 'hbox' }, articles : [{ xtype: 'forme', mise en page: { Type: 'vbox' }, par défaut: { labelAlign: 'top', largeur: 150 }, objet: [{ xtype: ' bouton ', cls: 'datePickerSearchBtn', texte: 'Aujourd'hui', auditeurs: { clic: function() {// en cliquant sur ce bouton besoin de mettre en valeur aujourd'hui dans mon datepicker }} }, { xtype: 'bouton', cls: 'datePickerSearchBtn', texte: 'hier', auditeurs: { clic: function() {// en cliquant sur ce bouton besoin de mettre en valeur hier dans mon datepicker this.up ('timeIntervalPanel'). down ('[name = startHourCombo]'). reset(); this.up ('timeIntervalPanel'). Down ('[nom = endHourCombo]'). Reset(); }} }, { xtype: 'bouton', cls: 'datePickerSearchBtn', texte: «Les 7 derniers jours, auditeurs: { clic: function() { this.up ('timeIntervalPanel') .setDates (Ext.Date.add (new Date(), Ext.Date.DAY, - 7), nouvelle Date()); this.up ('timeIntervalPanel'). Down ('[nom = startHourCombo]'). Reset(); this.up ('timeIntervalPanel'). Down ('[nom = endHourCombo]'). Reset(); }} }, { xtype: 'bouton', cls: 'datePickerSearchBtn', texte: 'Le mois dernier', auditeurs: { clic: function() { this.up ('timeIntervalPanel') .setDates (Ext.Date.add (new Date(), Ext.Date.MONTH, - 1), new Date()); this.up ('timeIntervalPanel'). Down ('[nom = startHourCombo]'). Reset(); this.up ('timeIntervalPanel'). Down ('[nom = endHourCombo]'). Reset(); } } }] }, { xtype: 'forme', frontière: true, mise en page: { Type: 'Vbox', align: 'centre' }, articles: [{ xtype : 'conteneur', mise en page: 'hbox', marge: '0 0 20 0', articles: [ { titre: 'date de début', marge: '0 20 0 0', tête: { titleAlign: 'centre' }, articles: { xtype: 'datepicker', itemId: 'startDate', valeur: Ext.Date.add (new Date(), Ext.Date.JOUR, -1), showToday: false, gestionnaire : function (sélecteur, date) {affichage ExtJS sélectionné timefiled et datepicker valeurs ensemble

     var timeInterval = this.up('timeIntervalPanel'); 
         var endDate = timeInterval.endDate; 
         //timeInterval.setDates(date, endDate); 

         var oneDay = 24 * 60 * 60 * 1000; 
         var diffDays = Math.round(Math.abs((endDate.getTime() - date.getTime())/(oneDay))); 
         if (diffDays > 29) { 
          this.up('timeIntervalPanel').down('[name=startHourCombo]').disable(); 
          this.up('timeIntervalPanel').down('[name=text]').disable(); 
          this.up('timeIntervalPanel').down('[name=endHourCombo]').disable(); 
         } else { 
          this.up('timeIntervalPanel').down('[name=startHourCombo]').enable(); 
          this.up('timeIntervalPanel').down('[name=text]').enable(); 
          this.up('timeIntervalPanel').down('[name=endHourCombo]').enable(); 
         } 
        } 

        } 
     }, { 

      title: 'End Date', 
      margin: '0 20 0 0', 
      header: { 
       titleAlign: 'center' 
      }, 
      items:{ 
       xtype: 'datepicker', 
       itemId: 'endDate', 
       value:Ext.Date.add(new Date(), Ext.Date.DAY, -1), 
       showToday: false, 
       handler: function(picker, date) { 

        var timeInterval = this.up('timeIntervalPanel'); 
         var startDate = timeInterval.startDate; 
         //timeInterval.setDates(startDate, date); 

         var oneDay = 24 * 60 * 60 * 1000; 
         var diffDays = Math.round(Math.abs((date.getTime() - startDate.getTime())/(oneDay))); 
         if (diffDays > 30) { 
          this.up('timeIntervalPanel').down('[name=startHourCombo]').disable(); 
          this.up('timeIntervalPanel').down('[name=text]').disable(); 
          this.up('timeIntervalPanel').down('[name=endHourCombo]').disable(); 

         } else { 
          this.up('timeIntervalPanel').down('[name=startHourCombo]').enable(); 
          this.up('timeIntervalPanel').down('[name=text]').enable(); 
          this.up('timeIntervalPanel').down('[name=endHourCombo]').enable(); 
         } 
        } 

      } 
     }] 
     }, 
     { 
      xtype: 'container', 
      layout: 'hbox', 
      items: [ 
       { 
        margin: '0 20 0 0', 
        items:{ 
        xtype: 'timefield', 
        name: 'startHourCombo', 
        id: 'startTime', 
        maxWidth: 100, 
        columnWidth: 0.2, 
        minValue: '12:00 AM', 
        maxValue: '11:00 PM', 
        increment: 60, 
        anchor: '100%', 
        value: '12:00 AM', 
        disabled: false, 
        listeners: { 
         change: function() { 
          var timeIntervalPanel = this.up('timeIntervalPanel'); 
          timeIntervalPanel.setDates(timeIntervalPanel.startDate, timeIntervalPanel.endDate); 
         } 
        } 

        } 
      },{ 
       margin: '0 20 0 0', 
       items: { 
       xtype: 'displayfield', 
       name: 'text', 
       maxWidth: 80, 
       minWidth: 30, 
       columnWidth: 0.2, 
       value: 'To', 
       disabled: false 
       } 
      }, 
      { 
       xtype: 'timefield', 
       name: 'endHourCombo', 
       id: 'endTime', 
       maxWidth: 100, 
       minValue: '12:00 AM', 
       maxValue: '11:00 PM', 
       increment: 60, 
       anchor: '100%', 
       value: '12:00 AM', 
       disabled: false, 
       listeners: { 
        change: function() { 
         var timeIntervalPanel = this.up('timeIntervalPanel'); 
         timeIntervalPanel.setDates(timeIntervalPanel.startDate, timeIntervalPanel.endDate); 
        } 
       } 

      } 
      ] 
     }] 


    }] 

}], 

    setDates: function(startDate, endDate) { 

     if (!startDate) startDate = new Date(); 

     if (!endDate) endDate = new Date(); 

     this.startDate = startDate; 
     this.endDate = endDate; 

     var startDatePicker = this.down('datepicker#startDate'); 
     var endDatePicker = this.down('datepicker#endDate'); 
     var startTime = this.up().down('timefield#startTime'); 
     var endTime = this.up().down('timefield#endTime'); 

     startDatePicker.setValue(startDate); 
     endDatePicker.setValue(endDate); 
     startDatePicker.setMaxDate(endDate); 
     endDatePicker.setMinDate(startDate); 

     var startDateValue = Ext.Date.format(startDate, 'd-m-Y'); 
     var endDateValue = Ext.Date.format(endDate, 'd-m-Y'); 
     this.setText(startDateValue + " " + startTime.getRawValue() + " TO " + endDateValue + " " + endTime.getRawValue()); 
    } 

});

+0

Vos données ne sont pas un objet JSON valide, détails exemple de problème nécessaire etc ... –

+0

je veux afficher les valeurs de timefield défaut de ExtJs, lorsque l'utilisateur sélectionne le sélecteur de date du formulaire de date et l'heure de mon champ de temps, veut afficher les deux valeurs ensemble date et heure – anka

+0

Où vous devez afficher ces valeurs ?? –

Répondre

0

Il suffit d'appeler l'événement setDates() dans l'événement de changement des deux champs temporels et d'obtenir les valeurs de ces champs de temps et de l'ajouter dans setText() du bouton.

Exemple de code:

Ext.application({ 
 
    name: 'Fiddle', 
 
    launch: function() { 
 
    Ext.create('Ext.form.Panel', { 
 
     border: true, 
 
     renderTo: Ext.getBody(), 
 
     layout: { 
 
     type: 'hbox' 
 
     }, 
 
     listeners: { 
 
     afterrender: function(button) { 
 
      button.setDates(); 
 
     } 
 
     }, 
 
     setDates: function(startDate, endDate) { 
 
     if (!startDate) startDate = new Date(); 
 

 
     if (!endDate) endDate = new Date(); 
 

 
     this.startDate = startDate; 
 
     this.endDate = endDate; 
 

 
     var startDatePicker = this.down('datepicker#startDate'); 
 
     var endDatePicker = this.down('datepicker#endDate'); 
 

 
     startDatePicker.setValue(startDate); 
 
     endDatePicker.setValue(endDate); 
 
     startDatePicker.setMaxDate(endDate); 
 
     endDatePicker.setMinDate(startDate); 
 

 
     }, 
 
     items: [{ 
 
      xtype: 'container', 
 
      layout: { 
 
      type: 'vbox', 
 
      align: 'center' 
 
      }, 
 
      defaults: { 
 
      labelAlign: 'top', 
 
      width: 150 
 
      }, 
 
      items: [{ 
 
      xtype: 'button', 
 
      cls: 'datePickerSearchBtn', 
 
      text: 'Today', 
 
      listeners: { 
 
       click: function() { 
 
       // when clicking on this button need to set value to today in my datepicker 
 
       } 
 
      } 
 
      }, { 
 
      xtype: 'button', 
 
      cls: 'datePickerSearchBtn', 
 
      text: 'Yesterday', 
 
      listeners: { 
 
       click: function() { 
 
       // when clicking on this button need to set value to yesterday in my datepicker 
 
       this.up('form').down('[name=startHourCombo]').reset(); 
 
       this.up('form').down('[name=endHourCombo]').reset(); 
 
       } 
 
      } 
 
      }, { 
 
      xtype: 'button', 
 
      cls: 'datePickerSearchBtn', 
 
      text: 'Last 7 days', 
 
      listeners: { 
 
       click: function() { 
 
       this.up('form').setDates(Ext.Date.add(new Date(), Ext.Date.DAY, -7), new Date()); 
 
       this.up('form').down('[name=startHourCombo]').reset(); 
 
       this.up('form').down('[name=endHourCombo]').reset(); 
 
       } 
 
      } 
 
      }, { 
 
      xtype: 'button', 
 
      cls: 'datePickerSearchBtn', 
 
      text: 'Last Month', 
 
      listeners: { 
 
       click: function() { 
 
       this.up('form').setDates(Ext.Date.add(new Date(), Ext.Date.MONTH, -1), new Date()); 
 
       this.up('form').down('[name=startHourCombo]').reset(); 
 
       this.up('form').down('[name=endHourCombo]').reset(); 
 
       } 
 
      } 
 
      }] 
 
     }, 
 
     { 
 
      xtype: 'container', 
 
      layout: { 
 
      type: 'vbox', 
 
      align: 'center' 
 
      }, 
 
      items: [{ 
 
       xtype: 'container', 
 
       layout: 'hbox', 
 
       margin: '0 0 20 0', 
 
       items: [{ 
 
       title: 'Start Date', 
 
       margin: '0 20 0 0', 
 
       items: { 
 
        xtype: 'datepicker', 
 
        value: Ext.Date.add(new Date(), Ext.Date.DAY, -1), 
 
        itemId: 'startDate', 
 
        showToday: false, 
 
        handler: function(picker, date) { 
 
        var timeIntervalPanel = this.up('form'); 
 
        var endDate = timeIntervalPanel.endDate; 
 
        timeIntervalPanel.setDates(date, endDate); 
 
        } 
 
       } 
 
       }, { 
 

 
       title: 'End Date', 
 
       margin: '0 20 0 0', 
 
       items: { 
 
        xtype: 'datepicker', 
 
        itemId: 'endDate', 
 
        value: Ext.Date.add(new Date(), Ext.Date.DAY, -1), 
 
        showToday: false, 
 
        handler: function(picker, date) { 
 
        var timeIntervalPanel = this.up('form'); 
 
        var startDate = timeIntervalPanel.startDate; 
 
        timeIntervalPanel.setDates(startDate, date); 
 
        } 
 
       } 
 
       }] 
 
      }, 
 
      { 
 
       xtype: 'container', 
 
       layout: 'hbox', 
 
       margin: '0 20 0 0', 
 
       items: [{ 
 
        xtype: 'timefield', 
 
        name: 'startHourCombo', 
 
        id: 'startTime', 
 
        minValue: '12:00 AM', 
 
        maxValue: '11:00 PM', 
 
        increment: 60, 
 
        value: '12:00 AM', 
 
       }, 
 
       { 
 
        xtype: 'timefield', 
 
        name: 'endHourCombo', 
 
        id: 'endTime', 
 
        minValue: '12:00 AM', 
 
        maxValue: '11:00 PM', 
 
        increment: 60, 
 
        value: '11:00 PM', 
 
       } 
 
       ] 
 
      }, 
 
      ] 
 
     } 
 
     ] 
 
    }); 
 
    } 
 

 

 
});
<link rel="stylesheet" href="https://cdn.sencha.com/ext/gpl/4.1.1/resources/css/ext-all.css"> 
 
<script type="text/javascript" src="https://cdn.sencha.com/ext/gpl/4.1.1/ext-all-debug.js"></script>

+0

merci et si je veux inclure des boutons comme le mois dernier et la semaine dernière et l'année dernière pour obtenir des valeurs de sélecteur de date et afficher sur le bouton de sélection dans le même ci-dessus exemple comment puis-je faire que pouvez-vous m'aider s'il vous plaît – anka

+0

Dans le même bouton ou un autre bouton ?? Donnez juste un exemple de comment cela devrait être affiché. –

+0

j'ai remplacé le code dans ma question @ankitchaudhary – anka