powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / extjs. связанные таблицы.
25 сообщений из 84, страница 1 из 4
extjs. связанные таблицы.
    #38012347
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Начал изучать extjs и делать приложение на нём. Подключился к mysql, вывел в grid данные из базы, научил добавлять, изменять, удалять записи. В общем дошел до того момента когда нужно вывести в мою основную таблицу связанные данные из подчиненных таблиц. Объясните кратко, как это лучше всего сделать?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38012434
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57нужно вывести в мою основную таблицу связанные данные из подчиненных таблиц. Объясните кратко, как это лучше всего сделать?
На серванте
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38013215
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftJeka57нужно вывести в мою основную таблицу связанные данные из подчиненных таблиц. Объясните кратко, как это лучше всего сделать?
На серванте
Я в принципе догадывался что запросом их соединять нужно, смотрел на inner join. Но думал что в extjs есть какая-нибудь фича для связей.
С выводом таблицы понятно, а что делать при добавлении записи, когда нужно вывести на место текстового поля выпадающий список с вариантами из другой базы, при выборе которого в основную базу будет отправляться id?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38013271
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57нужно вывести на место текстового поля выпадающий список с вариантами из другой базы таблицы , при выборе которого в основную базу таблицу будет отправляться id?
Рожается еще один Store, заполняющийся результатом запроса а-ля:
Код: sql
1.
select Id, Description from SmthTable


Затем он подрубается к ComboBox'у. А на уровне grid'а рулите renderer 'ом и editor 'ом
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38013425
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А нет ли примера кода, чтоб понять как это выглядит, а то что-то для меня сложновата документация, или я не понимаю как ей пользоваться...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38013456
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38013621
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft тынць
Большое спасибо, чувствую себя лузером, даже гуглом не смог воспользоваться =)
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38016339
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Появилась проблемка, теперь мне нужно привести всё к нормальному виду. Взял код из примера . Хочу вывести в div мой grid, ставлю в renderto грида id нужного дива, ошибок никаких нет, но грид не отображается. А если поставить рендер в стартовую страницу, т.е. ту которая открывается при загрузке, то он без проблем отображается.
Вообще как лучше и оптимальнее сделать меню, чтобы по кликам открывались нужные странички с гридами и формами?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38016844
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57ставлю в renderto грида id нужного дива
Код: javascript
1.
2.
3.
...
renderTo: Ext.get("divID")
...


так?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017196
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftJeka57ставлю в renderto грида id нужного дива
Код: javascript
1.
2.
3.
...
renderTo: Ext.get("divID")
...


так?
у меня было renderTo: ("divID"), но когда поменял ничего не изменилось. Причем если смотреть в консоль разработчика, то грид там как-бы есть.
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017247
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не надо картинок. Покажите код. Только ж - без фанатизма...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017279
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftНе надо картинок. Покажите код. Только ж - без фанатизма...
Да я чтобы наглядно...)

Вот viewport и grid
Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
    Ext.create('Ext.Viewport', {
        layout: 'border',
        title: 'Ext Layout Browser',
        items: [{
            xtype: 'box',
            id: 'header',
            region: 'north',
            html: '<h1>Учет компьютерной техники_</h1>',
            height: 40
        },{
            layout: 'border',
            id: 'layout-browser',
            region:'west',
            border: false,
            split:true,
            margins: '2 0 5 5',
            width: 275,
            minSize: 100,
            maxSize: 500,
            items: [treePanel, detailsPanel]
        }, 
            contentPanel
        ],
        renderTo: Ext.getBody()
    });
 
var grid = Ext.create('Ext.grid.Panel', {
	title: 'Учет компьтерной техники',
    width: 800,
    columns: gc,

	
  bbar: new Ext.PagingToolbar({   // bbar - нижний тулбар с листалкой
            store: store,               // указано хранилище
            displayInfo: true,          // вывести инфо обо общем числе записей
            displayMsg: 'Показано  {0} - {1} из {2}' // формат инфо
        }),
		
    tbar: [  // верхний тулбар с кнопками удаления и вставки
          {
            text: 'Ins',
            handler: function(){
                // при вставке создается пустая запись в  в хранилище.
                store.insert(0, new User());
                // переход к редактированию новой строки
                Editing.startEdit(0, 0);
            }
        },

          {
            itemId: 'delete', // id кнопки, потом пригодится
            text: 'Del',
            handler: function(){
                // определяем какая строка выделена
                var selection = grid.getView().getSelectionModel().getSelection()[0];
                // удаление строки из хранилища
                if (selection) {store.remove(selection);}
            }
        },
        {
          text: 'Save',
          handler: function(){    // обработчик события нажатия кнопки
            grid.store.sync(); // синхронизация
          }
		  },
		
      ],
		
		selType: 'rowmodel',
    plugins: [
        Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToEdit: 2
        })
    ],
	
    renderTo: Ext.get("computers-details"),
    store: store
}); 



вот панель с контентом

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    var layoutExamples = [];
    Ext.Object.each(getBasicLayouts(), function(name, example) {
        layoutExamples.push(example);
    });
    
	
	    var contentPanel = {
         id: 'content-panel',
         region: 'center', // this is what makes this panel into a region within the containing layout
         layout: 'card',
         margins: '2 5 5 0',
         activeItem: 0,
         border: false,
         items: layoutExamples
    };



и вот что функция возвращает на место items

Код: javascript
1.
2.
3.
4.
5.
6.
7.
        computers: {
            id: 'computers-panel',
            title: 'Компьютерная техника',
            layout: 'fit',
            bodyStyle: 'padding:25px',
            contentEl: 'computers-details',  // pull existing content from the page
			},
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017309
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.Panel-cfg-renderTo 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 to render and manage its child items.

Вы просто рожаете грид (без renderTo), а затем контейнер центральной панели должен сказать add() .
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017325
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Ext.onReady(function() {
	var
		vp = Ext.create("Ext.container.Viewport", {
			layout: "border",
			items: [{
				region: "west",
				layout: {
					type: "vbox",
					align: "stretch"
				},
				width: 100,
				items: [{
					xtype: "button",
					text: "Panel1",
					handler: function(btn, e) {
						replaceRegionCenter(btn.text);
					}
				}, {
					xtype: "button",
					text: "Panel2",
					handler: function(btn, e) {
						replaceRegionCenter(btn.text);
					}
				}, {
					xtype: "button",
					text: "Panel3",
					handler: function(btn, e) {
						replaceRegionCenter(btn.text);
					}
				}]
			},{
				region: "center"
			}]
		}),
		replaceRegionCenter = function(text)
		{
			var
				regionCenter = vp.getLayout().centerRegion;

			regionCenter.removeAll();
			regionCenter.add(Ext.create("Ext.panel.Panel", {
				html: text
			}));
		};
});
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017482
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,

попробовал просто вставить этот код, пишет Uncaught TypeError: Cannot call method 'add' of undefined и ничего не происходит
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017538
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. http://jsfiddle.net/Z6Es6/
2. Какая версия Ext'ов?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017572
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft,

была 4.0.7, обновился, немного пораскинул мозгами и всё заработало =) спасибо, буду смотреть дальше
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017585
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как добавить не в центральный контейнер, а в панель в центральном контейнере?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017599
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka574.0.7
Ха... Для 4.0.7
Код: javascript
1.
2.
3.
...
regionCenter = vp.getLayout().regions.center;
...


Ну, и... Я ж Вам дрозофилу нарисовал... А, по-хорошему, следовало бы шо-то а-ля:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
replaceRegionCenter = function(text)
{
	var
		regionCenter;

	if(regionCenter=vp.getLayout().centerRegion)
	{
		regionCenter.removeAll();
		regionCenter.add(Ext.create("Ext.panel.Panel", {
			html: text
		}));
	}
	else
		throw "karaul!!!";
};
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017605
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57А как добавить не в центральный контейнер, а в панель в центральном контейнере?
Как-то так:
Код: javascript
1.
2.
3.
smthPanel=vp.getLayout().centerRegion.down("panel");
smthPanel.removeAll(); // по необходимости
smthPanel.add(smthItem);
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017637
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftJeka57А как добавить не в центральный контейнер, а в панель в центральном контейнере?
Как-то так:
Код: javascript
1.
2.
3.
smthPanel=vp.getLayout().centerRegion.down("panel");
smthPanel.removeAll(); // по необходимости
smthPanel.add(smthItem);


Отлично, благодарю
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017673
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017702
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft, простите)
А вот еще вопросик появился, хочу сделать простое меню с помощью treepanel, подключил файл json, набросал структуру. Вот что получилось в json:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
children: [{
    text:'Компьютерная техника',
    expanded: true,
    children:[{
        text:'Компьютеры',
        id:'computers2',
        leaf:true,
		listeners:{
		click: function(){
     		var
			regionCenter = vp.getLayout().centerRegion.down("panel");

			regionCenter.removeAll();
			regionCenter.add(grid)
   }
}
    },{
        text:'Принтеры',
        id:'printers',
        leaf:true
    }]


Но что-то ничего не происходит при клике.
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017836
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Ext.data.NodeInterface нЭт события click. Впрочем, как и у Ext.tree.Panel . Юзайте Ext.tree.Panel 'ный itemclick
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38017848
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. BTW,
> подключил файл json, набросал структуру. Вот что получилось в json:
В json'е м.б. только данные, которые читаются reader'ом, который не может от'eval'ить Ваш listener.
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 1 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / extjs. связанные таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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