2015-05-09 7 views
0

Я новичок в js и extjs 3.4, я пытаюсь использовать Ext.form.ComboBox в Ext.window, чтобы показать список объектов js (слоев). проблема в том, что когда я создаю окно в первый раз, и я нажимаю на триггер ComboBox, я получаю список слоев правильно, но когда я удаляю или добавляю слой, и я снова нажимаю на триггер, магазин не обновляется, и я нахожу тот же список: (((Reload the ComboBox store on trigger click Extjs 3.4

Можете ли вы помочь мне найти решение этой проблемы, например, при нажатии на спусковой крючок будет обновлять и загружать новый список магазин Любое предложение можно только приветствовать,

заранее спасибо!

// The "ImageField" is an item witch is called on the return of the methode "createWindow" ... 
 

 
createWindow: function() { 
 

 
    ImageField = new Ext.form.ComboBox(Ext.apply({ 
 
     name: "Image_ref", 
 
     fieldLabel: "Image Input (Required)", 
 
     emptyText: "Select your Image", 
 
     xtype:'combo', 
 
     forceSelection: true, 
 
     editable: true, 
 
     allowBlank: true, 
 
     triggerAction: 'all', 
 
     mode: 'local', 
 
     valueField: 'value', 
 
     displayField: 'text', 
 
     labelWidth: 300 
 
     width: 250, 
 
     id: 'myCombo', 
 
     hideLabel: false, 
 
     lazyRender:false, 
 
     lazyInit:false, 
 
     mode: 'local', 
 
     triggerAction: 'all', 
 

 

 
     store: new Ext.data.SimpleStore({ 
 
             autoLoad: true, 
 
             autoDestroy: true, 
 
             fields: ['text','value'], 
 
             data: layer_liste_WCS // is a liste of js objects 
 
            }), 
 
     listeners:{ 
 

 
      beforequery:function(qe) { 
 
       // console.log(qe); 
 
        qe.cancel=true; 
 
        addComboxFieldItemsWCS(); // Run this methode to get "layer_liste_WCS" witch is liste of data 
 
        var actionComboBox = Ext.getCmp('myCombo'); 
 
        . 
 
        . 
 
        . 
 
        . 
 
        . 
 
        . 
 
        // I don't know how to do to reload the store after runing the methode "addComboxFieldItemsWCS" 
 
      } 
 
     } 
 
     
 
    }, base)); 
 

 
    return new Ext.Window({ 
 
     closable: true, 
 
     resizable: false, 
 
     shadow: false, 
 
     closeAction: 'hide', 
 
     region: "center", //"north","south","east","west" 
 
     width: 480, 
 
     height: 190, 
 
     iconCls: 'wind_icon', 
 
     plain: true, 
 
     layout: 'border', 
 
     buttonAlign: 'right', 
 
     layout: 'fit', 
 
     listeners: { 
 
      show: function() { 
 
       this.el.setStyle('left', ''); 
 
       this.el.setStyle('top', ''); 
 
      } 
 
     }, 
 
     items: [{ 
 
      region: 'center', 
 
      xtype: 'tabpanel', 
 
      activeTab: 0, 
 
      width: 50, 
 
      height:20, 
 
      items: [{ // we will declare 3 tabs 
 
       title: 'Datas Inputs', 
 
       closable:false, 
 
       iconCls: 'input_icon', 
 
       active: true, 
 
       items:[{ 
 
        xtype: 'form', 
 
        autoWidth: true, 
 
        labelWidth: 185, 
 
        bodyStyle: "padding:10px;", 
 
        items: [ 
 
         ImageField, 
 
        ]       
 
       }] 
 
      }]  
 
     }],      
 
    }); 
 
},

+0

Как вы удаляете \ добавляете слои в свой магазин? Можете ли вы поделиться этим кодом – mindparse

+0

Услышьте страницу: http://geoxxx.agrocampus-ouest.fr/mapfishapp/?lang=en&wmc=http%3A%2F%2Fgeoxxx.agrocampus-ouest.fr%2Fmapfishapp%2Fws%2Fwmc% 2Fgeodocc82c178e7cd5e379b1795526fdba2a15.wmc Чтобы найти окно, перейдите к «tools» -> «WPS Jussie» и используйте правую панель для удаления/добавления слоев. Вот исходный код: https://github.com/geosas/wpsjussie/blob/master/js/main.js – Mounirsky

ответ

0

Я опоздал на ответ, но у меня есть шанс.

У вас есть вызов ajax в addComboxFieldItemsWCS? Поместите этот код в свой обратный вызов, если вы можете: Ext.getCmp ('myCombo'). GetStore(). LoadData (layer_liste_WCS, false);

Для информации, параметр false должен заменить существующие данные.

Надеюсь, что эта помощь.

+0

Привет, я сожалею, что опоздал! Нет! У меня нет звонка Ajax! Магазин представляет собой массив из ['text', 'value']. Можете ли вы отправить пример кода? Спасибо заранее! – Mounirsky

Смежные вопросы