3

我有两个下拉菜单可以预约。一个是“从时间”,另一个是“时间”。在下拉菜单中有例如插槽。上午 9 点到 11 点和下午 1 点到 3 点,所以当我选择上午 9 点到晚上 11 点的第一个时段时,在“到时间”下拉菜单中,我只能看到在第一个时段预约的可用时间,即9.15、10.15 等。所以现在我选择了从 = 9.15 到 = 10.15 的约会。现在我点击“从时间”下拉菜单,我可以看到所有可用的插槽,我在这里没有做任何更改,但是当我点击“到时间”下拉菜单时,我可以看到所有插槽时间,这是出乎意料的我没有进行任何更改,因此即使我进行了任何更改,也应根据“从时间”下拉列表应用过滤器。

以下是我的代码

{
        xtype: 'selectfield',
        name: 'fromTime',
        id: 'fromTime',
        placeHolder: 'Select From Time',
        label: 'From:',
        labelWrap: true,
        store: 'DoctorLocationTimes',
        displayField: 'fromTime',
        valueField: 'fromTime',
        listeners: [
        {
          event: 'change',
          fn: function(){
            var fromTime, timeStore, index, record, docLocationid;            
            fromTime = Ext.getCmp('fromTime').getValue();
            timeStore = Ext.getStore('DoctorLocationTimes');
            timeStore.clearFilter();
            index= timeStore.find('fromTime', fromTime);
            if(index != -1){
              record = timeStore.getAt(index);
              docLocationid = record.get('docLocationWorkingHourid');
              timeStore.filter('docLocationWorkingHourid',docLocationid);
            }
          }
        },
        {
          event:'focus',
          fn: function(){
            var store = Ext.getStore('DoctorLocationTimes');
            store.clearFilter();
          }
        }
      ]
  }

如您所见,我正在根据“从时间”id 应用过滤器。我再次删除过滤器,因为从时间开始,我想在“从时间”下拉列表中显示所有插槽。

4

1 回答 1

2

我得到了答案。它现在可以工作了。

{
        xtype: 'selectfield',
        name: 'toTime',
        id: 'toTime',
        placeHolder: 'Select To Time',
        label: 'To:',
        labelWrap: true,
        store: 'DoctorLocationTimes',
        displayField: 'toTime',
        valueField: 'toTime',
        listeners: [
        {
          event:'focus',
          fn: function(){
            var fromTime, timeStore, index, record, docLocationid;            
            fromTime = Ext.getCmp('fromTime').getValue();
            timeStore = Ext.getStore('DoctorLocationTimes');
            timeStore.clearFilter();
            index= timeStore.find('fromTime', fromTime);
            if(index != -1){
              record = timeStore.getAt(index);
              docLocationid = record.get('docLocationWorkingHourid');
              timeStore.filter('docLocationWorkingHourid',docLocationid);
            }
          }
        }]
      }

我发现在对“to time”的焦点事件应用过滤器后,它会按预期工作。

于 2013-10-10T12:18:23.977 回答