Как правильно загрузить gridcombobox с динамическим хранилищем данных? - PullRequest
0 голосов
/ 10 августа 2011

Я работаю над простой формой сетки, в которой в качестве прокси-сервера используется комбобокс и источник данных (например, http://goo.gl/2fxP8).). Комбо-бокс загружается правильно, но когда я пытаюсь выбрать один из элементов списка, форма сетки закрывается, а комбобокс незакрыть. Кто-нибудь может мне помочь?

Я планирую также расширить функцию выпадающего списка, чтобы после выбора элемента списка динамически загружались другие поля.

 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 голосов
/ 11 августа 2011

Я думаю, что проблема в том, что вы НАХОДИТЕСЬ за onSelect функцией ..
посмотрите здесь (попробуйте найти onSelect), onSelect метод является частным ...
и, как вы можете видеть, внутри onSelect есть функция collapse, вызываемая по умолчанию .. поэтому, если вы переопределяете onSelect .. ваше комбо никогда не свернется по умолчанию ..
вы должны сделать этовручную ... как то, что сказал Киран ...

и мой вопрос: почему вы переопределили функцию onSelect ?? ..
, если вам нужно что-то сделать, когда была выбрана комбинация, почемуразве вы не установили его в качестве слушателей ??

попробуйте изменить свой код:

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

с этим:

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