Extjs вопрос домик - PullRequest
       4

Extjs вопрос домик

1 голос
/ 07 января 2012

У меня есть простая сетка с одним из столбцов, который является ссылкой для скачивания, расположенной так:

{
    header: 'Config files',
    width: 130,
    sortable: false,
    fixed: true,
    renderer: function() {
        return '<a href="javascript:void(0);" class="downloadCfg">Download</a>';
    }
}

Это на виду. Теперь, перейдя к контроллеру, я поместил слушателя в сетку, чтобы ловить каждый раз, когда ссылка нажата:

init : function() {
    this.control({
        'accountFiles a[class=downloadCfg]': {
            click: function () {
                alert('test');
            }
        }
    });
}

Очень простой, но не работает. Может ли это быть из-за того, что ссылка создается с помощью функции сетки рендерера? Есть идеи?

Ответы [ 3 ]

1 голос
/ 07 января 2012

Я не знаю, как решить эту проблему, но я знаю другое решение.

Метод создания в GridPanel:

doDownload: function(recordId) {
    var record = this.getStore().data.get(recordId);
    // do something
}

Затем создайте изменяемый рендер:

renderer: function(value, meta, record, rowIndex, colIndex, store) {
    return '<a href="#" onclick="Ext.getCmp(Ext.get(this).parent(\'.x-grid\').id).doDownload(\'' + store.data.getKey(record) + '\')">Download</a>';
}

Действие в обработчике onclick пытается найти сетку с использованием классов dom.

1 голос
/ 07 января 2012

@ Romeo

Вот как можно узнать, нажата ли ссылка «Загрузить» или нет:

'accountFiles': {
            itemclick: function( thisView, record, item, index, e, eOpts ) {
                var t = e.getTarget('.downloadCfg');

                if (!Ext.isEmpty(t))
                    alert('Download clicked!!');
                else
                    alert('Other item clicked!!');
            }
        }

Как только вы определили, что нажата ссылка «Загрузить», у вас есть запись, содержащая полную запись, представляющую строку.

0 голосов
/ 07 января 2012
accountFiles a[class=downloadCfg] 

выберет всех потомков тега accountFiles , имеющих тег a .И отфильтруйте их по атрибуту класса.

Мне кажется, вы перепутали его с синтаксисом ComponentQuery, в котором вы выбираете по идентификатору компонента, а не по тегу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...