2013-01-16 11 views
5

Ho un'applicazione che utilizza ExtJs 3.4.
ho questa costruzione:Come montare le colonne di gridpanel?

westPanel-TabPanel:

var westPanel = new Ext.TabPanel({ 
      id: "west", 
      //xtype: "tabpanel", 
      //layout:'fit', 
      activeTab: 0, 
      region: "west", 
      border: false, 
      width: 278, 
      split: true, 
      collapseMode: "mini", 
      items: [mapList,structure,cadastr,search] 
     }); 

ricerca - FormPanel:

var search = new Ext.FormPanel({ 
       labelAlign: 'top', 
       frame:true, 
       title: 'Поиск', 
       bodyStyle:'padding:5px 5px 0', 
       //width: 600, 
       //layout:'fit', 
       items: [{ 
        xtype:'textfield', 
        fieldLabel: 'Диспечерское наименование', 
        name: 'name_dispather', 
        anchor:'100%', 
        enableKeyEvents: true, 
        listeners: { 
         'keyup': function(e) { 
          if(e.getValue().length==4){ 
           searchStore.load({params:{'name':e.getValue()}}); 
          } 
         } 
        } 
       },searchTab] 
      }); 

SearchTab - GridPanel:

var searchTab = new Ext.ux.grid.livegrid.GridPanel({ 
    store: searchStore, 
    region: 'center', 
    cm: searchCm, 
    layout: 'fit', 
    selModel: new Ext.ux.grid.livegrid.RowSelectionModel(), 
    stripeRows : true, 
    view: myView, 
    height: 390, 
    loadMask: true, 
    id: 'searchTab', 
    title:'Найденные объекты', 
    autoScroll: true, 
}); 

e ho un problema:

enter image description here

È necessario rendere la larghezza dell'ultima colonna all'intera larghezza del pannello?

UPDATE

provo autoExpandColumn. le sue opere, ma non la sua iDial:

enter image description here

Come risolvere il problema?

risposta

5

È possibile ottenere questo con la configurazione flex.

È possibile farlo su una sola colonna:

columns: [{text: "Column A", dataIndex: "field_A", flex: 1}] 

Oppure si può fare come default su tutte le colonne:

columns: { 
    items: [ 
     { 
      text: "Column A" 
      dataIndex: "field_A" 
     },{ 
      text: "Column B", 
      dataIndex: "field_B" 
     }, 
     ... 
    ], 
    defaults: { 
     flex: 1 
    } 
} 
+0

+1 per i valori predefiniti, solo io non utilizzerei questo dato che molto probabilmente avrai colonne contenenti una larghezza, e penso che la flessibilità superi la larghezza. –

+0

flex deve essere impostato solo su quelle colonne che hanno lo scopo di espandersi automaticamente. Penso che la maggior parte delle volte non siano mai tutte. – seba

+0

'@ JohanHaest' Flex in effetti sovrascrive qualsiasi larghezza specificata. '@ seba' Sì, pensavo di condividerlo :). – A1rPun

4

Prova con:

autoExpandColumn : String

L'id di una colonna in questa griglia che dovrebbe espandersi per riempire lo spazio inutilizzato .

Questa opzione di configurazione che devi fornire per il tuo searchTab (intendo il pannello della griglia).

Modificato:

viewConfig:{ 
     scrollOffset: 0, 
    forceFit: true 
    }, 

Questo eliminerà gap che ha lasciato per la barra di scorrimento. Questo è necessario menzionare per la tua ricercaTab (intendo il pannello della griglia).

+1

secondo sencha questo è obsoleto e non dovrebbe essere usato – seba

+0

@vajrakumar: Provo autoExpandColumn.Funziona ma con un problema come l'om screen nell'aggiornamento delle domande. –

+0

Quello spazio è per la barra di scorrimento, se il record arriva di più, la barra di scorrimento verrà in quel punto. Ogni modo in cui possiamo far andare questo spazio. Dare un po 'di tempo lo pubblicherà. – vajrakumar

Problemi correlati