Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> extJs rowexpander toggleRow, установить значение expander 
:(
    Опции темы
kovalenko123
Дата 20.4.2014, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Здравствуйте всем! 
Задача такая имея грид при клике по expander делать ajax запрос и вставлять данные в rowBodyTpl

вопрос таков: как обратится к потомку row и записать текст в rowBodyTpl

Буду благодарен за любую помощь

привожу код
Код

var grid = Ext.define('UsersList', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.userslist',
    title: 'Пользователи',
    store: 'UserStore',

    initComponent: function () {
        this.columns = [
            {header: 'Имя', dataIndex: 'name', flex: 1},
            {header: 'Фамилия', dataIndex: 'surname', flex: 1},
            {header: 'Логин', dataIndex: 'login', flex: 1},
            {header: 'Статус', dataIndex: 'status', flex: 1},
            {header: 'Дата регистрации', dataIndex: 'created_at', flex: 1}
        ];

        this.callParent(arguments);
    },

    plugins: [
        {
            ptype: 'rowexpander',
            pluginId: 'rowexpander',
            selectRowOnExpand: true,
            rowBodyTpl: [
                '<div id="user-{id}" ></div>'
            ],

            toggleRow: function (rowIdx) {
                var rowNode = this.view.getNode(rowIdx),
                    record = this.view.getRecord(rowNode),
                    userId = record.get('id'),
                    targetId = 'user-' + userId,

                    row = Ext.get(rowNode),
                    nextBd = Ext.get(row).down(this.rowBodyTrSelector),
                    hiddenCls = this.rowBodyHiddenCls,

                    grid = this.getCmp();

                if (row.hasCls(this.rowCollapsedCls)) {
                    row.removeCls(this.rowCollapsedCls);
                    this.recordsExpanded[record.internalId] = true;
                    this.view.fireEvent('expandbody', rowNode, record, nextBd.dom);

                    Ext.Ajax.request({
                        url: '/users/comment',
                        params: {id: userId},
                        success: function (response) {
                            var data = Ext.decode(response.responseText);
                            if (data.success) {
                                nextBd.removeCls(hiddenCls);

ВОТ ТУТ НАДО ОБРАТИТЬСЯ К  rowBodyTpl и подставить в него значение data.comment;

                                grid.suspendEvents();
                            } else {
                                Ext.Msg.alert('Комментарий', 'Не удалось получить комментарий для пользователя');
                            }
                        }
                    });

                    if (rowNode.grid) {

                    } else {

                    }

                } else {
                    row.addCls(this.rowCollapsedCls);
                    nextBd.addCls(this.rowBodyHiddenCls);
                    this.recordsExpanded[record.internalId] = false;
                    this.view.fireEvent('collapsebody', rowNode, record, nextBd.dom);
                }
            }
        }
    ]
});


Это сообщение отредактировал(а) kovalenko123 - 20.4.2014, 10:09
PM MAIL ICQ   Вверх
kovalenko123
Дата 20.4.2014, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 12.5.2008

Репутация: нет
Всего: 1



Код

 document.getElementById(targetId).innerHTML = data.comment;


вот что пришло в голову... но хотелось бы через метод все же setText какой нибудь... кто нибудь подскажет?
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0789 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.