如何正确加载带动态数据存储的gridcombobox?

时间:2011-08-10 07:31:51

标签: javascript extjs extjs3

我正在处理一个简单的网格表单,它有一个组合框和数据源作为代理(如http://goo.gl/2fxP8)。组合框正确加载,但当我尝试选择其中一个列表项时,网格关闭,组合框不关闭。任何人都可以帮助我吗?

我计划扩展组合框onselect功能,这样一旦选择了列表项,其他字段将被动态加载。

 searchField = new Ext.form.ComboBox({
     store: ds,
     name : 'search',
     id:'search',
     fieldLabel : 'Search',
     displayField:'title',
     typeAhead: false,
     loadingText: 'Searching...',
     pageSize:10, 
     minChars:2,
     triggerAction: 'all',
     width: 200,
     tpl: resTpl,
     itemSelector: 'div.search-item',
     onSelect: function(record){ 
     /* Set Values to other fields here */
     }
 }),

保存代码是:

                                    Ext.Ajax.request
                                    ({  
                                    url:"some url",
                                    scope:this,
                                    params:
                                    {
                                    },
                                    success: function(objServerResponse)
                                    {
                                        eval("var resultSet = " +objServerResponse.responseText);
                                        if(resultSet.isOk)
                                        {

                                            this.collapse();
                                        }   
                                        else
                                        {


                                        }

                                    }
                                    });

1 个答案:

答案 0 :(得分:0)

我认为问题是你已经超越onSelect功能..
看看here(尝试查找onSelect),onSelect方法是私有的...
正如您所看到的,在onSelect内部默认调用collapse函数。 所以,如果你在onSelect以上..你的组合永远不会崩溃..
你必须手动完成..就像kiran所说的那样......

我的问题是,你为什么要覆盖onSelect函数?.. 如果你需要做什么当选择组合时,你为什么不把它设置为听众?

尝试更改您的代码:

 onSelect: function(record){ 
 /* Set Values to other fields here */
 }

这一个:

listeners : {
   "select" : function(combo,data,idx){
        console.info(data);
   }
}