Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJS tree.Panel text: / 20 сообщений из 20, страница 1 из 1
20.07.2012, 18:47:44
    #37887504
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Доброе время суток всем. Не один день пытался решить эту маленькую проблему, которая оказалась для меня такой огромной.

Написано приложение, шаблон MVC, php, фрэймворк ExtJS, mysql

Вот его вид и с него я буду объяснять что я хочу. Скрин: вид приложения, и консоль Firebug

Слева на Toolbar есть кнопки, а под ними Tree.Panel.. У которой есть 3 колонки:

первая - xtype:'treecolumn'
вторая - id
третья - ФИО (user_fio)

ФАЙЛ VIEW (представление)
Код: 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.
Ext.define('AM.view.main.tree', {
    extend: 'Ext.tree.Panel', 
    title: 'Simple Tree',
	alias: 'widget.tree_grid', 
     width: 190,
     height: 200,
    store: 'Tr',
	//id : 'tr'
     rootVisible: true,
	// renderTo: Ext.getBody('Panel.Toolbar.TreeGrid')
	//defaultRootProperty: 'data',
	//displayField: 'user_fio',
	columns:[   {
				xtype:'treecolumn',
				text: 'Пользователи',
				dataIndex: 'text',
				width: 80
				},
				{            
                   text: 'ID',
                   dataIndex: 'id',
                   width: 30,
				   
                } ,   
				{  	
					//xtype:  'label',        
                    text: 'Ф.И.О.',
                   [color=red] dataIndex: "user_fio",[/color]
					width: 93,
                    //flex: 1
				
                }



красным цветом я выделил, то на что стоит обратить внимание.

Читаем далее,
ФАЙЛ STORE

Код: 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.
Ext.define('AM.store.Tr', {
    extend: 'Ext.data.TreeStore', 
	model: 'AM.model.Tree',
	defaultRootProperty: 'data',
  	proxy: {
         type: 'ajax',
         url: 'data.php?line2=1',
         reader: {
             type: 'json',
             root: 'data'
         }
     },
     autoLoad: true,
     displayField: 'user_fio',	 
     root: {
		id: '',
        expanded: true,
		text: "User Types",
       [color=red] data: 
		[
            {   
			text: "user", id:4, , leaf: false, 
			
	    },
            {
			text: "admin", id:5, leaf: false, 
	    }[/color]
        ]
    }	 
     	 
}); 



И ФАЙЛ MODEL
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Ext.define('AM.model.Tree', {
    extend: 'Ext.data.Model',
   
	fields: [   
				{name:'id', type:'int'}, 
				[color=red]{name: 'user_fio',type:'string'},[/color]
				
					
					 ],
				
    idProperty: 'id'
    
});




Вопрос такой, почему у меня не отображается данные из поля user_fio и колонке tree.Panel "Ф.И.О." ?
Колонка ID отображается корректно, хотя берется из того же массива данных, который виден в консоле Firebug на картинке.
...
Рейтинг: 0 / 0
21.07.2012, 00:33:27
    #37887719
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Это видели/сравнивали/анализировали?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.07.2012, 11:33:18
    #37888878
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Ex_Soft,

увидел/сравнил/проанализировал , не помогло :(

В моем коде все так же как и тут, никаких особых ошибок я не вижу, но проблема остаётся не решенной, может я что-то не вижу, того что Вы видите, наведите на путь истинный, пожалуйста. Спасибо
...
Рейтинг: 0 / 0
23.07.2012, 11:44:53
    #37888895
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
попробуйте как-то локализировать проблему
поэкспериментировать с порядком полей, с типами данных

если никак - попробуйте сделать маленький тестовый пример (на jsfiddle.net например)

ЗЫ я ExtJS не знаю

ЗЗЫ я всегда подсознательно опасался запятую перед квадратной скобкой:)
...
Рейтинг: 0 / 0
23.07.2012, 12:06:01
    #37888933
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Паганель,

Я уже все перепробовал и имя поля копировал из базы и вставлял везде в коде, и другие поля пытался достать, но все так же, их не видно, видно только первое поле id из той же таблицы. В ExtJS запятые перед скобками это нормально, если не нормально браузер просто не покажет ничего :)
...
Рейтинг: 0 / 0
23.07.2012, 12:11:32
    #37888944
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Паганель,

Это модуль и так маленький :) просто, т.к. использую MVC он состоит из трех файликов, где кода "как кот наплакал" :) единственное, что можно еще вам показать это сам файл data.php к которому ссылается

Store:

Код: 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.
Ext.define('AM.store.Tr', {
    extend: 'Ext.data.TreeStore', 
	model: 'AM.model.Tree',
	defaultRootProperty: 'data',
  	proxy: {
         type: 'ajax',
         url: 'data.php?line2=1',
         reader: {
             type: 'json',
             root: 'data'
         }
     },
     autoLoad: true,
  	 
     root: {
		id: '',
        expanded: true,
		text: "User Types",
        data: 
		[
            {   
			text: "user", id:4,  leaf: false, 
			
			},
            {
			text: "admin", id:5, leaf: false,
			}
        ]
    }	 
     	 
}); 



А именно 'data.php?line2=1'

Код: php
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.
if (@$_REQUEST['line2']){
    $start = (int)@$_REQUEST['start'];
    $limit = (int)@$_REQUEST['limit']?(int)$_REQUEST['limit']:10;
    
    $sort =  @$_REQUEST['sort'];
    $sort_dir =  @$_REQUEST['dir'];
    
    $query = @$_REQUEST['query'];
	$id = @$_REQUEST['id'];
   
    $filters = array(); // объявлем пустой массив, чтоб его заполнить
    if (@$_REQUEST['node']) //если послано id node..
      {
      	  $filters['user_type_id'] = $_REQUEST['node']; // .. то присвоем user_type_id значение id node 
		 
      }
    
    $res= $sample2->getAll($limit, $start, $filters, $sort, $sort_dir);  
    
    if (@$_REQUEST['node'])
    foreach ($res['items'] as $n => $item ){
      $item = array_merge($item,array('leaf'=>true)); 	// array_merge сливает массивы и получается новый. Елементы второго массива добавляются к элементам первого.
      $res['items'][$n] = $item;                        // в данном случае массив item состоит из елементов : $limit, $start, $filters, $sort, $sort_dir и 'leaf'=>true
    }
      
    exit(json_encode(array('success'=>true,'data'=>$res['items'],'total'=>$res['total'])));
	
	
	
	}
...
Рейтинг: 0 / 0
23.07.2012, 12:17:04
    #37888959
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Кто готов помочь, я могу скинуть исходники всего приложения и .sql базы, если тут непонятно что к чему
...
Рейтинг: 0 / 0
23.07.2012, 13:28:22
    #37889100
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Возьмите вот эту дрозофилу и разберитесь.
...
Рейтинг: 0 / 0
23.07.2012, 13:29:52
    #37889108
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
МафА именно 'data.php?line2=1'

Вы можете JSON показать который на клиента приходит?
...
Рейтинг: 0 / 0
23.07.2012, 15:38:52
    #37889319
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Ex_SoftВозьмите вот эту дрозофилу и разберитесь.

Я же уже говорил, что этот код у меня работает + Мой я сравнивал с этим, все такого же типа, но ошибок у себя я не нашел.
...
Рейтинг: 0 / 0
23.07.2012, 15:43:06
    #37889328
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Ex_SoftМафА именно 'data.php?line2=1'

Вы можете JSON показать который на клиента приходит?

скрин с FireBug есть в начале. Там написано какие данные JSON
...
Рейтинг: 0 / 0
23.07.2012, 16:48:59
    #37889458
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
МафЯ же уже говорил, что этот код у меня работает + Мой я сравнивал с этим, все такого же типа, но ошибок у себя я не нашел.
Ну, если Вам лень сделать свою дрозофилу , ждите, пока у кого-то найдется время сделать ее за Вас и разобраться, почему этот код, адаптированный под Ваши нужды/данные, не работает...
...
Рейтинг: 0 / 0
23.07.2012, 17:46:26
    #37889558
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Ex_SoftМафЯ же уже говорил, что этот код у меня работает + Мой я сравнивал с этим, все такого же типа, но ошибок у себя я не нашел.
Ну, если Вам лень сделать свою дрозофилу , ждите, пока у кого-то найдется время сделать ее за Вас и разобраться, почему этот код, адаптированный под Ваши нужды/данные, не работает...

Вообще-то я сделал себе пример с этого кода на который Вы дали ссылку :) но переделав свой под новый, не добился ничего интересного
...
Рейтинг: 0 / 0
23.07.2012, 17:55:43
    #37889577
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
МафВообще-то я сделал себе пример с этого кода на который Вы дали ссылку :) но переделав свой под новый, не добился ничего интересногоНу и эта Ваша дрозофила хоть заработала?..
...
Рейтинг: 0 / 0
23.07.2012, 17:59:46
    #37889585
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
JSON посморите - у Вас такой же (по структуре)?
...
Рейтинг: 0 / 0
23.07.2012, 18:08:01
    #37889595
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Ex_SoftМафВообще-то я сделал себе пример с этого кода на который Вы дали ссылку :) но переделав свой под новый, не добился ничего интересногоНу и эта Ваша дрозофила хоть заработала?..

да, и JSON такой же
...
Рейтинг: 0 / 0
23.07.2012, 18:29:29
    #37889612
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Мафда
Ну тогда перенесите ее в свое приложение

Мафи JSON такой же
/me думает: что-то я здесь никакого намека на дерево , акромя leaf - не замечаю...
...
Рейтинг: 0 / 0
23.07.2012, 22:21:08
    #37889790
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Все завелось с пол-пинка:
Код: 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.
Ext.onReady(function() {
	Ext.QuickTips.init();

	Ext.define("TestTreeStoreModel", {
		extend: "Ext.data.Model",
		idProperty: "id",
		fields: [
			{ name: "id", type: "int" },
			{ name: "parentId", type: "int"  },
			"caption",
			"smthtext"
		]
	});

	var
		data = 	[{
			id: 1,
			parentId: 0,
			caption: "Folder# 1",
			smthtext: "SmthText# 1",
			children: [
				{ id: 2, parentId: 1, caption: "Leaf# 1.1", smthtext: "SmthText# 1.1", leaf: true },
				{ id: 3, parentId: 1, caption: "Leaf# 1.2", smthtext: "SmthText# 1.2", leaf: true }
			]
		}, {
			id: 4,
			parentId: 0,
			caption: "Folder# 2",
			smthtext: "SmthText# 2",
			children: [
				{ id: 5, parentId: 4, caption: "Leaf# 2.1", smthtext: "SmthText# 2.1", leaf: true },
				{ id: 6, parentId: 4, caption: "Leaf# 2.2", smthtext: "SmthText# 2.2", leaf: true }
			]
		}],
		store = Ext.create("Ext.data.TreeStore", {
			model: "TestTreeStoreModel",
			folderSort: true,
			proxy: {
				type: "memory"
			}
		}),
		t = Ext.create("Ext.tree.Panel", {
			title: "TreeGrid",
			height: 500,
			width: 500,
			store: store,
			rootVisible: false,
			useArrows: true,
			columns: [{
				xtype: "treecolumn",
				text: "id",
				dataIndex: "id"
			}, {
				text: "parentId",
				dataIndex: "parentId",
			}, {
				text: "caption",
				dataIndex: "caption"
			}, {
				text: "smthtext",
				dataIndex: "smthtext"
			}],
			renderTo: Ext.getBody()
		});

	store.setRootNode({
		text: "RootNode",
		leaf: false,
		expanded: true,
		id: 0
	});

	t.getRootNode().appendChild(data);
});



Проверяйте Ваш JSON. Осмелюсь предположить, что он, мягко выражаясь, кривоват, соответственно Ваш user_fio не загрузился...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.07.2012, 22:24:26
    #37889794
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
Забыл тынць ...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.07.2012, 13:11:01
    #37890414
Маф
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ExtJS tree.Panel text:
спасибо, за помощь, сделал по-другому. В файле дата слил массив, который передается JSON с массивами leaf и с массивом значений user_fio

Код: php
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.
if (@$_REQUEST['line2']){
    $start = (int)@$_REQUEST['start'];
    $limit = (int)@$_REQUEST['limit']?(int)$_REQUEST['limit']:10;
    
    $sort =  @$_REQUEST['sort'];
    $sort_dir =  @$_REQUEST['dir'];
    
    $query = @$_REQUEST['query'];
	$id = @$_REQUEST['id'];
    /*$filters = array();
    if ($query)
      $filters['text'] = $query;
    $column_filter = @$_REQUEST['filter'];
    if ($column_filter && count($column_filter))
        foreach ($column_filter as $f) 
            $filters[$f['field']] = $f['data']['value'];*/
    $filters = array(); // объявлем пустой массив, чтоб его заполнить
    if (@$_REQUEST['node']) //если послано id node..
      {
      	  $filters['user_type_id'] = $_REQUEST['node']; // .. то присвоем user_type_id значение id node 
		  //$filters['user_fio'] = $_REQUEST['node'];
      }
    
    $res= $sample2->getAll($limit, $start, $filters, $sort, $sort_dir);  
    
    if (@$_REQUEST['node'])
    foreach ($res['items'] as $n => $item ){
      $item = array_merge($item,array('leaf'=>true),array('text'=>$item['user_fio'])); 	// array_merge сливает массивы и получается новый. Елементы второго массива добавляются к элементам первого.
      $res['items'][$n] = $item;                        // в данном случае массив item состоит из елементов : $limit, $start, $filters, $sort, $sort_dir , 'leaf'=>true и user_fio
    }
      
    exit(json_encode(array('success'=>true,'data'=>$res['items'],'total'=>$res['total']))); 
	
	
	
	}
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJS tree.Panel text: / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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