Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2014, 12:38
Новичок на форуме
Отправить личное сообщение для Lexxx_HU Посмотреть профиль Найти все сообщения от Lexxx_HU
 
Регистрация: 24.07.2014
Сообщений: 3

RowEditing и combobox - при изменении отображается "dataindex"
Здравствуйте, прошу помоши
RowEditing и combobox - при изменении отображается "dataindex"
а необходимо чтоб отображалось "displayField"
заранее спасибо



Ext.define('ModelLib', {
            extend: 'Ext.data.Model',
            fields: [
                'trID',
                'trName'
            ]
        });
        var storeServer = Ext.create('Ext.data.Store', {
            autoDestroy: true,
            model: 'ModelLib',
            proxy: {
                type: 'ajax',
                api: {
                    read: '/api.php?lib=server&act=get'
                },
                reader: {
                    type: 'json',
                    root: 'fields',
                    idProperty: "trID"
                }
            },
            sorters: [{
                property: 'trID',
                direction: 'ASC'
            }]
        });
        storeServer.load();

        Ext.define('ModelMainobjects', {
            extend: 'Ext.data.Model',
            fields: [
                {name: 'trServerID',   type: 'int'}
            ]
        });

        var store = Ext.create('Ext.data.Store', {
            // destroy the store if the grid is destroyed
            autoDestroy: true,
            autoSync : true,
            model: 'ModelMainobjects',
            proxy: {
                type: 'ajax',
                api: {
                    read: '/api.php?lib=mainobjects&act=get',
                    update: '/api.php?lib=mainobjects&act=update'
                },
                reader: {
                    type: 'json',
                    root: 'fields',
                    idProperty: "trID"
                },
                writer: {
                    type: 'json'
                }
            },
            sorters: [{
                property: 'trID',
                direction: 'ASC'
            }]
        });

        store.load();

        var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToMoveEditor: 1,
            autoCancel: false
        });

        var rowRenderer = function(val) {
            var rec = storeServer.findRecord('id', val);
            return rec !== null ? rec.get("trName") : ''
        };

        
        var grid = Ext.create('Ext.grid.Panel', {
            store: store,
            columns: [
            {
                header: 'Сервер',
                dataIndex: 'trServerID',
                renderer: rowRenderer,
                editor: {
                    xtype: 'combobox',
                    store: storeServer,
                    queryMode: 'local',
                    displayField: 'trName',
                    valueField: 'trID'
                }
            }],
            width: 600,
            height: 400,
            plugins: [rowEditing]
        });
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2014, 13:17
Аватар для Makarov
Профессор
Отправить личное сообщение для Makarov Посмотреть профиль Найти все сообщения от Makarov
 
Регистрация: 08.07.2013
Сообщений: 212

Ага, распространенная проблема

Готовые решения:
Айн:
http://www.sencha.com/forum/showthre...-in-RowEditing
Цвай:
http://stackoverflow.com/questions/8...rking-properly
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2014, 14:54
Новичок на форуме
Отправить личное сообщение для Lexxx_HU Посмотреть профиль Найти все сообщения от Lexxx_HU
 
Регистрация: 24.07.2014
Сообщений: 3

собственно именно с этого сообщения я и взял код ))

http://www.sencha.com/forum/showthre...l=1#post841173

из того что понял, если я делаю статичный store - то все работает
если динамический - то не работает

статичный
var storeServer = Ext.create('Ext.data.Store', {
            fields:['trID', 'trName'],
            data:{'items':[
                { 'trID': 1, 'trName': 'Server 1' },
                { 'trID': 2, 'trName': 'Server 2' }
            ]},
            proxy: {
                type: 'memory',
                reader: {
                    type: 'json',
                    idProperty: "trID",
                    root: 'items'
                }
            }
        });


динамический
var storeServer = Ext.create('Ext.data.Store', {
            fields:['trID', 'trName'],
            proxy: {
                type: 'ajax',
                api: {
                    read: '/api.php?lib=server&act=get'
                },
                reader: {
                    type: 'json',
                    root: 'fields',
                    idProperty: "trID"
                }
            }
        storeServer.load();
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2014, 15:01
Новичок на форуме
Отправить личное сообщение для Lexxx_HU Посмотреть профиль Найти все сообщения от Lexxx_HU
 
Регистрация: 24.07.2014
Сообщений: 3

кажется разобрался, сам же отвечаю на свой вопрос (может кому поможет)

для первой редакции кода заменил объявление модели на
Ext.define('ModelLib', {
            extend: 'Ext.data.Model',
            fields: [
                {name: 'trID',  type: 'int'},
                {name: 'trName',  type: 'string'}
            ]
        });


то есть для полей модели важно указать их тип, иначе render не находит (в store мы сказали что trServerId - int, а нам для storeServer trID пришла строка)

Последний раз редактировалось Lexxx_HU, 25.07.2014 в 09:04.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сдвиг при изменении border mycoding (X)HTML/CSS 11 22.04.2010 09:38
выполнение ф-ии при изменении состояния radio MaxB Events/DOM/Window 5 24.06.2009 14:24
при выборе в 1-ом select соот.-щая инф. отображается в другом select celencer Общие вопросы Javascript 1 24.05.2009 20:38
Координаты DIV(объекта) при центровке и изменении свойств экрана andrys2007 Элементы интерфейса 1 10.03.2009 20:55
Подвисание IE при динамическом изменении контента Taddy_Bear Общие вопросы Javascript 4 11.12.2008 21:12