powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по ExtJs 2.3, GridPanel и TabPanel
7 сообщений из 7, страница 1 из 1
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37960659
rivo_see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Я тут допиливаю чужой код. До этого с экстом не работал. Курю доки, но лучше б я курил чё-то покрепче, они меня с ума сводят.
Есть tabPanel, по клику на вкладке в контейнер 'grid_panel' загружается грид.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
....
xtype: "tabpanel",
						border: false,
						region: "center",					
						activeTab: 0,
						items: [{
							layout: "fit",
							title: "Грид",
							items: [{xtype: 'box',autoEl: {tag: 'div', id: 'grid_panel'}}],
							listeners:{
								activate : 	getGrid
							}
						}
....


вот собственно грид
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
gridObject = new Ext.grid.GridPanel({
			id: 'archive',
			loadMask: true,
			border: false,
			autoScroll: true,
			renderTo: 'grid_panel',
			width: '100%',
			store: gridStore,
			viewConfig: {
				forceFit: true
			},
			autoHeight: true,
			autoScroll: true,
			columns: [
				{ header: 'Название', dataIndex: 'owner_str', width: 400 },
				{ header: 'Путь', dataIndex: 'path', width: 400 },
				{ header: 'Дата', dataIndex: 'date', width: 200 },
				{ header: 'Причина', dataIndex: 'reason' }
			],
			listeners: {
				scope: this,
				rowcontextmenu: function(_, index, e) {
					e.stopEvent();
					var coords = e.getXY();
					var selModel = Rto.AdminCp.Archive.gridObject.getSelectionModel();
					selModel.isSelected(index) || selModel.selectRow(index);
					Rto.AdminCp.Archive.gridContextMenu.showAt([coords[0], coords[1]]);
				},
				rowdblclick: function(grid) {
					var record = grid.getSelectionModel().getSelected().data;
				}
			}
		})


Проблемы с этим связанные:
1. не отображается вертикальный скрол.
2. при каждом переходе по вкладкам вызывается gridStore.load() чтобы обновить данные, и грид при каждом переходе добавляется к уже существующему снизу, а нужно чтоб он его заменял или старый грид перерисовывался. как удалять предыдущий? Или как вообще правильно сделать?
Господа специалисты, направьте на путь истинный, пожалуйста.
...
Рейтинг: 0 / 0
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37960719
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начните с:
rivo_see
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
....
xtype: "tabpanel",
						border: false,
						region: "center",					
						activeTab: 0,
						items: [{
							layout: "fit",
							title: "Грид",
							items: [{xtype: 'box',autoEl: {tag: 'div', id: 'grid_panel'}}],
							listeners:{
								activate : 	getGrid
							}
						}
....


http://www.sencha.com/learn/layout-faq/ 1. layout is missing in your component structure or you have over nested your structure. For example:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
{
  layout: 'border',
  items: [{
    region: 'east',
    title: 'Title',
    items: [{
      xtype: 'grid',
      ...
    }]
  }]
}
//The above has an extra panel, which was both unneeded and did
//not have a layout defined, it should be:
{
  layout: 'border',
  items: [{
    region: 'east',
    title: 'Title',
    xtype: 'grid',
    ...
  }]
}
...
Рейтинг: 0 / 0
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37960797
rivo_see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,

Спасибо, а как тогда грид по событию привязать к нужному табу? я его создаю отдельно же... и активации табы рендерю в том контейнере(который лишний), в табу рендерить у меня не получилось.
...
Рейтинг: 0 / 0
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37960843
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rivo_seeкак тогда грид по событию привязать к нужному табу?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
var
	tp = new Ext.TabPanel({
		activeTab: 0,
		items: [
			new Grid1(),
			new Grid2(),
			grid3,
			grid4,
			grid5
		]
	});


rivo_seeтабы рендерю в том контейнере(который лишний), в табу рендерить у меня не получилось.
http://www.sencha.com/learn/layout-faq/ renderTo - renders the Component into the specified existing element.

Do not use this option if the Component is to be a child item of a Container. It is the responsibility of the Container's layout manager render its child items.
...
Рейтинг: 0 / 0
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37960938
rivo_see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,

возможно я Вас не понимаю, или я неправильно сформулировал вопрос. Пока я не нажал на вкладке и не вызвал функцию loadGrid
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
xtype: "tabpanel",
						border: false,
						region: "center",
						activeTab: 0,
						items: [{
							layout: "fit",
							title: "Здесь будет грид после клика на табе",
							listeners:{
								activate : 	loadGrid
							}
						}


грида вообще не должно существовать в структуре. все события его инициализации, загрузки данных в хранилище должны произойти только после клика на табе. иначе это всё ещё до рендеринга будет висеть в памяти, я правильно понимаю? Так вот, после события я создаю грид
Код: javascript
1.
gridObject = new Ext.grid.GridPanel({....

и хочу его нарисовать в нужную вкладку.
Если я правильно понял, то такая запись
Код: javascript
1.
2.
items: [
			new Grid1(),


сразу загрузит уже какой-то существующий грид, который я должен подготовить заранее и загрузить в него данные.
Может я и не прав.
...
Рейтинг: 0 / 0
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37961015
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/me думает: еще один ?..
Ex_Soft...grid - только визуализирует данные. Сами данные хранятся в store...

Мало того: пока Вы не активизируете TAB, грид даже не от'render'иться и, соответственно, никакие данные грузиться не будут...
...
Рейтинг: 0 / 0
Вопрос по ExtJs 2.3, GridPanel и TabPanel
    #37961614
rivo_see
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,
огромное спасибо, со всем разобрался
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Вопрос по ExtJs 2.3, GridPanel и TabPanel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]