Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 01.12.2010, 01:28
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

grid.store = waitersStore;// <-а только так
Ответить с цитированием
  #12 (permalink)  
Старый 01.12.2010, 01:34
Интересующийся
Отправить личное сообщение для lastbronetrain Посмотреть профиль Найти все сообщения от lastbronetrain
 
Регистрация: 30.11.2010
Сообщений: 19

Объясню для чего я это затеял (может найдется другое решение)

Окно у меня имеет разметку border.
На окне имеется выдвижная панель, которая имеет
region : 'east'
и выдвигается влево. Вместе с ней изменяет свои размеры и grid который имеет region : 'center'.
Проблема в том, что у меня 8 grid'ов, а
region : 'center'
актуален только для одного, поэтому когда панель меняет свои размеры остальные grid'ы свои размеры не меняют.
Например у грида Клиенты стоит region center, когда я выбираю таблицу официанты (все остальные таблицы невидимы) она уже не меняет свои размеры вместе с панелью.
Это мне необходимо устранить.
Ответить с цитированием
  #13 (permalink)  
Старый 01.12.2010, 01:40
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

блин,

oGrid.reconfigure( Ext.data.Store store, Ext.grid.ColumnModel colModel )
Ответить с цитированием
  #14 (permalink)  
Старый 01.12.2010, 01:46
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

у тебя есть Viewport c layout:'border'

Viewport имеет items Ext.Panel({region: 'east'})

создай еще один Ext.Panel({region:'center'}) и запихни в него свои таблицы

и по идее, меняется размер панели, и будут подгоняться таблицы внутри панели.

Думаю, ты просто не до конца продумал свой layout и пытаешься решить проблему совсем не теми методами. ну тебе видее
Ответить с цитированием
  #15 (permalink)  
Старый 01.12.2010, 11:56
Интересующийся
Отправить личное сообщение для lastbronetrain Посмотреть профиль Найти все сообщения от lastbronetrain
 
Регистрация: 30.11.2010
Сообщений: 19

Попробовал реализовать то, что предложил underW. Но, к сожалению, таблицы не меняют свои размеры вместе с панелью, только если установить у панели layout : 'border', а у таблицы region : 'center', но опять же изменять размеры будет только одна таблица.
Ответить с цитированием
  #16 (permalink)  
Старый 01.12.2010, 12:09
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

покажи пример реализации.

и потом, ты знаешь что 'border' - это не единственный тип layout'a, например, можно поставить 'fit'.

Последний раз редактировалось underW, 01.12.2010 в 12:12.
Ответить с цитированием
  #17 (permalink)  
Старый 01.12.2010, 12:53
Интересующийся
Отправить личное сообщение для lastbronetrain Посмотреть профиль Найти все сообщения от lastbronetrain
 
Регистрация: 30.11.2010
Сообщений: 19

Вот задается panel1 cо всеми гридами:
var panel1 = new Ext.Panel({
             layout : 'border',
             //autoScroll : true,
             split  : true,
             region : 'center',
             items  : [
                        grid,
                        waitersGrid,
                        stolikiGrid,
                        bludaGrid,
                        napitkiGrid,
                        zakaziGrid,
                        zakaziBludGrid,
                        zakaziNapitkovGrid,
             ]
   });


Вот задается panel2 с datepicker:

var datePickerPanel = new Ext.Panel({
     region      : 'east',
     title       : 'Дата и время',
     collapsible : true,
     split       : true,
          // margins     : '3 0 3 3',
          //cmargins    : '3 3 3 3',
     width       : 204,
     items       : [datepicker]
  });


Вот главное окно:
var win = new Ext.Window ({
    id          : 'mainWindow',
    title       : 'Ресторан "Рауль Дьюк"',
    height      : 360,
    width       : 935,
    layout      : 'border',
    //autoScroll  : true,
    modal       : true,
    border      : true,
    closabled   : false,
    //region      : 'center',
    plain       : true,
    resizable   : false,
    collapsible : true,
    items       : [

                      winItems // эти две панели
                   ],
    tbar 	: mainToolBar
  })


Вот грид Клиенты:
var grid = new Ext.grid.EditorGridPanel({
      region         : 'center',
      x              : 0, //задаем координаты расположения grid
      y              : 0,
      title          : 'Клиенты', /*'Клиенты'*/
      id             : 'myGrid',
      height         : 300,
      width          : 716,
      trackMouseOver : false,
      frame          : true,
      style          : {visibility : 'visible'},
      columnLines    : true,
      stripeRows     : true,

      viewConfig: {
            forceFit:true
        },
      bbar         : toolBar,
      store        : jsonStore, /*jsonStore*/
      columns      : 
      [
          new Ext.grid.RowNumberer(),
          {header : '№',/*hidden : true,*/dataIndex: 'id_klients'},
          {header : 'Фамилия', sortable: true, dataIndex: 'surname', editor: textField},
          {header : 'Имя', dataIndex: 'name', editor : textField},
          {header : 'Отчество', dataIndex: 'patronymic', editor : textField},
          {header : 'Дата', sortable: true, dataIndex: 'date', editor: date_editor, renderer : Ext.util.Format.dateRenderer('d/m/Y')},
          {header : 'Номер столика',sortable: true, dataIndex: 'id_stolika',editor : stolik_edit},
          {header : 'Официант', dataIndex: 'waiters_name', editor: waiters_edit}
      ]
  });


Вот таблица официантов:
var waitersGrid = new Ext.grid.EditorGridPanel({
        region         : 'center',
		id          : 'waitersGrid',
        //region         : 'center',
        title       : 'Официанты',
        height      : 300,
        width       : 716,//716
        frame       : true,
        columnLines : true,
        stripeRows  : true,
        x           : 0,
        y           : 0,
         viewConfig: {
            forceFit:true
        },
        style       : {visibility : 'hidden'},
        bbar        : toolBarWaiters,
        store       : waitersStoreDB,
        columns     : [
            new Ext.grid.RowNumberer(),
            {header : 'id', dataIndex : 'id_waiters'},
            {header : 'Имя официанта', dataIndex : 'waiters_name', editor: textField},
            {header : 'Стаж работы', dataIndex : 'stazh', editor : numberField}
        ]
  });
Ответить с цитированием
  #18 (permalink)  
Старый 01.12.2010, 13:34
Аспирант
Отправить личное сообщение для underW Посмотреть профиль Найти все сообщения от underW
 
Регистрация: 31.03.2009
Сообщений: 81

глянь на вот это, может это подойдет:

Ext.onReady(
		function(){
			
			Ext.Msg.alert("1", "2");
			
			var oFirstGrid = new Ext.grid.GridPanel({
								title: 'oFirstGrid',
								store	:[] ,
								flex	:1,
								columns	: [
										{header:"one"}, 
										{header:"two"},
										{header:"three"}],
										
								viewConfig: {
        								forceFit: true
  							  }})
  							  
  			var oSecondGrid = new Ext.grid.GridPanel({
			 					title: 'oSecondGrid',
			 					flex	:1,
								store	:[] ,
								columns	: [
										{header:"one"}, 
										{header:"two"},
										{header:"three"}],
										
								viewConfig: {
        								forceFit: true
  							  }})
  							  
  			var oThreeGrid = new Ext.grid.GridPanel({
			 					title: 'oThreeGrid',
			 					flex	:1,
								store	:[] ,
								columns	: [
										{header:"one"}, 
										{header:"two"},
										{header:"three"}],
										
								viewConfig: {
        								forceFit: true
  							  }})
			
			
			var oEastPanel = new Ext.Panel({
						region : 'east',
						title	: "oEastPanel",
						width	: 200,
						split	: true
			})
			
			
				var oCenterPanel = new Ext.Panel({
				
						region : 'center',
						title	: "oCenterPanel",
						layout:'vbox',
layoutConfig: {
    align : 'stretch',
    pack  : 'start',
},
items: [
        oFirstGrid,oSecondGrid, oThreeGrid
]
						
			})
			
			
			new Ext.Viewport({
			
			title	: 'viewPort',
			layout	: 'border',
			items	:[oEastPanel, oCenterPanel]
			
			})
			
				
		})


двигаем oEastPanel - автоматически меняется размер таблиц в oCenterPanel.
Ответить с цитированием
  #19 (permalink)  
Старый 01.12.2010, 13:57
Интересующийся
Отправить личное сообщение для lastbronetrain Посмотреть профиль Найти все сообщения от lastbronetrain
 
Регистрация: 30.11.2010
Сообщений: 19

Спасибо за помощь
Все решилось намного проще:
у всех таблиц я установил anchor : '100%' и теперь они меняют свои размеры относительно контейнера, т.е. относительно панели, так что спасибо за идею с панелью
Ответить с цитированием
  #20 (permalink)  
Старый 06.12.2010, 23:19
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

metachange + reconfigure
__________________
"Helo, word!" - 17 errors 56 warnings
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли передать переменую grid из одной функции в другую alexrzl ExtJS 1 16.11.2010 18:33
возможен ли итог в grid без групировки? alexrzl ExtJS 1 19.10.2010 12:57
Grid + Panel + Viewport IgorN ExtJS 2 04.10.2010 16:02
Выделит row в grid mycoding ExtJS 1 29.07.2010 15:28
Grid + ComboBox kostiaGt ExtJS 3 05.11.2009 17:15