我有两个下拉预约。一个是“从时间”,另一个是“到时间”。在下拉中有例如插槽。上午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的基础上应用过滤器。我再次删除过滤器,因为我想再次显示“从时间”下拉列表中的所有插槽。
答案 0 :(得分: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);
}
}
}]
}
我发现在“按时间”对焦点事件应用过滤器后,其按预期工作。