清除并刷新extjs中链接的组合框中的值

kmb7vmvb  于 2022-09-26  发布在  其他
关注(0)|答案(2)|浏览(196)

我在extjs中创建了两个链接的组合框,使用json/ajax/php获取数据。当在第一个组合框中选择一个值(汽车制造商)时,第二个组合框会使用该制造商下的车型进行自我更新,例如,在第一个联合框中选择丰田会使用诸如avensis、corolla、premio、ist等值更新第二个。
第一问题是,当我在第一个组合中选择一个项目,例如“丰田”,然后在第二个组合中选中“复仇”,然后换到另一个制造商,例如梅赛德斯-奔驰。如果梅赛德斯旗下有车型,例如C200、E500等,它们将在第二个组合中显示,但之前选择的值“avensis”仍然与第一个组合中选择的值相同。如何清除该值?
第二如果返回的json没有值,则第二个组合值不变。如果返回的json有空值,如何使第二个组合框为空?下面是我的代码片段:

xtype: 'combo',
                name: 'auto_make',
                id: 'auto_make',
                fieldLabel: 'Auto Make',
                store: auto_make_store,
                queryMode: 'local',
                displayField: 'name',
                valueField: 'id',
                listeners: {
                    "select": function(obj){ 
                        var makeid = obj.getValue();// value of selected combo item

                        Ext.Ajax.request({
                            url: '../includes/dhx_dataview.php?action=15&mk='+ makeid +'&sc=' + subid + '&ac=' + cat,
                            success: function (response) {
                                var data = Ext.decode(response.responseText).models;
                                auto_model_store.loadData(data);
//Do I clear/ refresh second combo here? How?
                            }
                        });
                    }

                }

Thnx和rgds。

lztngnrs

lztngnrs1#

你可以尝试这样做-这将重新加载你的组合框

{
 xtype: 'checkbox',
 //configs
 listeners : {
     checked : function (checkbox, checkedBool) {
     var yourCombo = Ext.getCmp(yourComboID);

     yourCombo.store.reload(
              {   
                 params: 
                     {yourParam : checkedBool},
                     {yourRowID : rowID}
                });
      }
  }
jm81lzqq

jm81lzqq2#

您可以尝试将forceSelection:true添加到组合框中。这将要求所选值存在于绑定存储中。

相关问题