powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / extjs. связанные таблицы.
25 сообщений из 84, страница 2 из 4
extjs. связанные таблицы.
    #38017911
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, ступил.
Сделал вот так:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    var treePanel = Ext.create('Ext.tree.Panel', {
        id: 'tree-panel',
        title: 'Навигация',
        region:'north',
        split: true,
        height: 360,
        minSize: 150,
        rootVisible: false,
        autoScroll: true,
        store: store,
		listeners: {
		itemclick : function(view,rec,item,index,eventObj) {
		

    if(rec.get('id')=='computers') {
		    		
			var regionCenter = vp.getLayout().centerRegion;
			
			regionCenter.removeAll();
			regionCenter.add(grid)
    }


При клике появляется грид справа. Но я теперь не понимаю как мне быть, если нужно прорисовать к примеру две панели и в них добавить по гриду? Как не пробовал - не получается.
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38018275
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Регионы представляют собой Ext.panel.Panel со всеми вытекающими ...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38018686
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось вот что:
Код: 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.
regionCenter.add(
	Ext.create('Ext.panel.Panel', {
    title: 'Компьютеры',
    width: 600,
    height: 500,
    layout: {
        type: 'vbox',       // Arrange child items vertically
        align: 'stretch',    // Each takes up full width
        padding: 5
    },
    items: [{               // Results grid specified as a config object with an xtype of 'grid'
        xtype: 'grid',
        columns: gc,            // One header just for show. There's no data,
        store: store, // A dummy empty data store
        flex: 1,                                       // Use 1/3 of Container's height (hint to Box layout)
		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
        })
    ]
	//end grid


Перестали кнопки работать, т.к. если я оставлю как было
Код: javascript
1.
2.
regionCenter.add(
	var grid = Ext.create('Ext.panel.Panel', {

то ничего не загружается и в консоли ошибка Unexpected identifier
Чувствую, совсем тупой вопрос, но как заставить кнопки снова работать?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38018852
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Задлянафига Вы в Panel Grid засунули ( Reduce container nesting )?
2. Jeka57
Код: javascript
1.
2.
regionCenter.add(
	var grid = Ext.create('Ext.panel.Panel', {


3. Jeka57ничего не загружается и в консоли ошибка Unexpected identifier
Чувствую, совсем тупой вопрос, но как заставить кнопки снова работать?
Ну, а рядом с консолью - ЭстЪ TAB Script/Sources. Заходим туда, ставим breakpoint на обработчик itemclick и вперьодЪ!

P.S. И замените TAB'ы на пробелы в Вашем редакторе, pls...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019187
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1.Так оно было в примере в документации, я подругому не знаю как мне в панели гриды засунуть.
2.Я же говорю, если добавить var перед ext.create внутри regionCenter.add(), то ничего не загружается вообще и на этой строке появляется ошибка Unexpected identifier.
3.Дело в том, что это вопрос, вытекающий из второго, если не определена переменная grid, то в кнопках перестает работать определение выделенной строки: var selection = grid.getView().getSelectionModel().getSelection()[0]; Поэтому я и спрашиваю как их починить...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019349
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в том, как забрать у xtype grid выделенную строку?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019428
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> в панели гриды засунуть.
Ex_Soft Reduce container nesting

> если добавить var перед ext.create внутри regionCenter.add()
/me вспоминает: АБС...большая машина "воин-купол" пришла в движение от пальца в отверстии пятом и от пальца в отверстии сорок седьмом, и движение было неодолимое, быстрое и прямое...

> если не определена переменная grid
> Вопрос в том, как забрать у xtype grid выделенную строку?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
regionCenter.add(Ext.create('Ext.grid.Panel', {
     store: store,
     columns: gc,
     tbar: [{
         text: 'Del',
         handler: function(btn, e) {
             var
                 grid;

             if(grid=btn.up("grid"))
                 grid.getStore().remove(grid.getSelectionModel().getSelected());
         }
     }]
}));


_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019458
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно, с горем пополам разобрался со всем.
Теперь еще проблема появилась. Возвращаясь к combobox в grid'e.
Нашел пример, вот код columns с комбобоксом:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
{ dataIndex: 'department', header: 'Department' , editor: {
                xtype: 'combobox',
                store: storecombo,
                displayField: 'department',
                valueField: 'id'
            },
            renderer: function(val){
                index = storecombo.findExact('id',val); 
                if (index != -1){
                    rs = storecombo.getAt(index).data; 
                    return rs.display; 
                }
            }}


Данные в комбобокс загружаются, в таблицу сохраняются id, всё как положено. А вот в grid поля пустые.
Я так понимаю что-то не так в renderer?
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019470
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
renderer:function(value, metaData, record, rowIndex, colIndex, store, view) {
     var
         rec;

     return (rec=storecombo.getById(value)) ? rec.get("department") : "!storecombo.getById(value)";
}


_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019475
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_Soft, огромнейшее спасибо!
Еще не подскажите как добавить фильтры по каждому полю? Искал, так и не нашел нормальных объяснений. Чтобы сверху или снизу грида добавились текстовые поля и по ним можно фильтровать данные.
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019479
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Еще не подскажите как добавить фильтры по каждому полю?
Штатно такое, типо, не предусматривается. Тут нужно брать в руки напильник. А из готового - попробуйте Ext.ux.grid.FiltersFeature ... Мо подойдет/понравится...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019491
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В принципе подходит, всё работает, но я так понимаю это фильтрация только тех данных, которые загружены в store?
Я посмотрел php код здесь , но так и не понял как мне его добавить к своему
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?php
require 'connect.php';

    $result=mysql_query ("SELECT * FROM pc") or die (mysql_error ());    
    
    $data = array();
    
    while ($row=mysql_fetch_object($result))
    {
        $data [] = $row;
    }
	echo json_encode($data);

?>
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019717
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57я так понимаю это фильтрация только тех данных, которые загружены в store?
Да. Для фильтрации на серванте нужно установить Ext.data.Store.remoteFilter в true, Ext.ux.grid.FiltersFeature.local в false (хотя оно и так по default'у). Теперь фильтр будет передаваться на сервант в формате , зависящем от Ext.ux.grid.FiltersFeature.encode . Далее поступаем по правилу великого чешского ученого Буравчика
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38019734
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Поискав grid+header+filter надыбал Ext.ux.grid.GridHeaderFilters ( Ext.ux.grid.GridHeaderFilters ) Сам его не юзал, но, судя по дате последней версии: Version 0.2.0 - 05/03/12, - типо живет и развивается/поддерживается. Можете покрутить еще и его...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38020902
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вроде и того стандартного функционала достаточно.
Поставил local: false, никаких запросов не делается. Может не надо Буравчика, поможете немного со скриптом на сервере?))
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38020918
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> никаких запросов не делается
Непорядок. 100%-но? Что в Console/Net? Покажите Store/Grid (только без listener'ов/dockedItem'ов/tbar'ов etc.)

> поможете немного со скриптом на сервере?))
Я на пыхе только хеловордил... По этому вопросу Вам лучче сюда
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38020936
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ex_SoftНепорядок. 100%-но? Что в Console/Net? Покажите Store/Grid (только без listener'ов/dockedItem'ов/tbar'ов etc.)

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.
var store = Ext.create('Ext.data.JsonStore', {
    pageSize: 25,
    model: 'pc',
    
	autoLoad: false,
    autoSync: false,
	
    proxy: {
        type: 'ajax',
        api:{
            create:'php/create.php',
            read:'php/get.php',
            update:'php/upd.php',
            destroy:'php/del.php'
            },
    reader: {
        type: 'json',
		root: 'data'
		}
                
            }

});
...



в grid
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
columns: gc,           
store: store, 
features: [filtersCfg],
emptyText: 'No Matching Records',
selType: 'rowmodel',
    plugins: [
        Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToEdit: 2
        })
    ]
...



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
var filtersCfg = {
    ftype: 'filters',
	encode: true,
    autoReload: false, //don't reload automatically
    local: true, //only filter locally
    // filters may be configured through the plugin,
    // or in the column definition within the headers configuration
    filters: [{
        type: 'numeric',
        dataIndex: 'id'
    }, {
        type: 'string',
        dataIndex: 'name'
    }, {
        type: 'numeric',
        dataIndex: 'cost'
    }, {
        type: 'string',
        dataIndex: 'department'
    }]
};



Пытаюсь отфильтровать записи, в консоли только два GET запроса для treepanel и собственно grid'a которые при загрузке страницы появляются и тишина.
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38021552
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57в консоли только два GET запроса для treepanel и собственно grid'a которые при загрузке страницы появляются и тишина.
Ну, дык, у Вас же
Jeka57
Код: javascript
1.
2.
3.
4.
5.
6.
var filtersCfg = {
...
    autoReload: false, //don't reload automatically
    local: true, //only filter locally
...
};


Вот Вам дрозофила:
Код: 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.
79.
80.
81.
82.
Ext.Loader.setPath("Ext.ux", "ext4.1.1/examples/ux");

Ext.Loader.setConfig({
    enabled: true,
    disableCaching: false
});

Ext.require([
    "Ext.ux.grid.FiltersFeature"
]);

Ext.define("TestModel", {
    extend: "Ext.data.Model",
    idProperty: "id",
    fields: [
        { name: "id", type: "int" },
        { name: "fstring", type: "string" },
        { name: "ffloat", type: "float" },
        { name: "fdate", type: "date", dateFormat: "MS" },
        { name: "fboolean", type: "boolean" },
        { name: "fint", type: "int" }
    ]
});

Ext.define("ListModel", {
    extend: "Ext.data.Model",
    idProperty: "id",
    fields: [
        { name: "id", type: "int" },
        { name: "fstring", type: "string" }
    ]
});

Ext.onReady(function () {
    Ext.QuickTips.init();

    var 
        list = [
            [1, "Record# 1"],
            [2, "Record# 2"],
            [3, "Record# 3"]
        ],
        storeList = Ext.create("Ext.data.ArrayStore", {
            model: "ListModel",
            data: list
        }),
        listRenderer = function (value, metaData, record, rowIndex, colIndex, store, view) {
            var 
                listRecord;

            return (listRecord = storeList.getById(value)) ? listRecord.get("fstring") : "!storeList.getById(name)";
        };

    Ext.create("Ext.grid.Panel", {
        title: "Ext.grid.Panel with Ext.ux.grid.FiltersFeature",
        store: Ext.create("Ext.data.JsonStore", {
            model: "TestModel",
            //remoteFilter: true, // работает и без этого
            autoLoad: true,
            proxy: {
                type: "ajax",
                url: "data.aspx",
                reader: {
                    root: "data"
                }
            }
        }),
        columns: [
            { dataIndex: "id", header: "id", filterable: true },
            { dataIndex: "fstring", header: "fstring", filterable: true, flex: 1 },
            { dataIndex: "ffloat", header: "ffloat", filterable: true },
            { dataIndex: "fdate", header: "fdate", renderer: Ext.util.Format.dateRenderer("d.m.Y"), filter: { type: "date", dateFormat: "d.m.Y", afterText: "afterText", beforeText: "beforeText", onText: "onText"} },
            { dataIndex: "fboolean", header: "fboolean", filterable: true },
            { dataIndex: "fint", header: "fint", renderer: listRenderer, filter: { type: "list", dataIndex: "fint", options: list} }
        ],
        features: [{
            ftype: "filters",
            encode: true,
            local: false
        }],
        renderTo: Ext.getBody()
    });


Разбирайтесь...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38022108
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот спасибо, local у меня в false стоял когда пробовал. autoReload: true помог, теперь запросы ломятся, жаль, в соседней ветке по php никто не хочет помочь со скриптом :(
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38022120
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57php
см. ExtJS\examples\grid-filtering\grid-filter.php
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38022153
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да я смотрел, но в php тоже только хелловорлдил. Там идет выборка не из mysql базы как у меня, поэтому я не понимаю как ему подсунуть мою базу.
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38022674
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вот такие колонки, первая рендерит комбобокс, а вторая при наведении показывает подсказку. Как соединить две функции, чтобы первая колонка рендерила боки и показывала подсказку при наведении?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	{ dataIndex: 'local', header: 'ЛВС' , width: 50, editor: {
                xtype: 'combobox',
                store: storeAnswers,
                displayField: 'answer',
                valueField: 'id'
            },
     renderer:function(value, metaData, record, rowIndex, colIndex, store, view) {
     var rec;
     return (rec=storeAnswers.getById(value)) ? rec.get("answer") : "!storeAnswers.getById(value)";
}},
	{ dataIndex: 'comments', header: 'Comments' , width: 180, editor: 'textfield' , renderer: function (value, meta, record) {
                    var max = 15;
                    meta.tdAttr = 'data-qtip="' + value + '"';
                    return value.length < max ? value : value.substring(0, max - 3) + '...';
                }}
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38023087
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jeka57Как соединить две функции, чтобы первая колонка рендерила боки и показывала подсказку при наведении?
Ниче не понял. Кто такие "боки"? Где д.б. подсказка? В первой колонке или во второй? Или Вы хотите одну унифицированную функцию рендеринга на две колонки а-ля:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
function megaRenderer(value, metaData, record, rowIndex, colIndex, store, view) {
    var
        rec,
        result = value;

    switch(colIndex)
    {
         case 1:
         {
               result = (rec=storeAnswers.getById(value)) ? rec.get("answer") : Ext.String.format("!storeAnswers.getById(\"{0}\")", value);
               break;
         }
         case 2:
         {
               meta.tdAttr = 'data-qtip="' + value + '"';
               result = Ext.String.ellipsis(value, 15);
               break;
         }
    }

    return result;
}


???

P.S. Jeka57 в соседней ветке по php никто не хочет помочь со скриптом :(
Ну кто же так задает вопросы? Вот Вы бы сами ответили на вопрос, сформулированный в стиле а-ля: "Вот мне надо реализовать какую-то хренотень, вот вам огрызок кода и сцылко на доку - разберитесь и доложите"? Почитайте на сон грядущий...
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38023911
Jeka57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело было ближе к утру, уже плохо соображал.
У меня есть колонка ЛВС - в ней combobox, который подтягивает данные из store, + к этому в ячейке рендерится нормальное значение из стора, т.е. id меняется на слово.
Также есть колонка Comments - в ней простое значение из стора, а в рендере стоит всплывающая подсказка при наведении курсора.
Так вот, и в той и в другой колонке в рендере указана функция. Мне нужно соединить эти две функции, чтобы, к примеру, в колонке ЛВС помимо замены id на нормальную запись появилась всплывающая подсказка при наведении. Вот, вроде подробно объяснил.

А со скриптом php я вроде разобрался сам =)
...
Рейтинг: 0 / 0
extjs. связанные таблицы.
    #38024179
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Так вот, и в той и в другой колонке в рендере указана функция. Мне нужно соединить эти две функции
Ну так эта функция Вас удовлетворяет
?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 84, страница 2 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / extjs. связанные таблицы.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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