ExtJS — Текстовое поле, отображаемое с помощью средства визуализации, не получает фокус щелчка?

#extjs #extjs4.2

#extjs #extjs4.2

Вопрос:

Я использую a propertyGrid для построения табличного файла. Когда я использую a renderer для возврата текстового поля, я не могу щелкнуть и ввести это текстовое поле. Он не получает никакого фокуса. Есть способ это исправить? Кроме того, есть ли способ отобразить элемент ExtJS вместо необработанного HTML-элемента из средства визуализации?

Ответ №1:

В grid средства визуализации столбцов возвращают только текст HTML, поэтому невозможно вернуть компоненты напрямую. Единственное, что нужно, это присвоить ячейке уникальный идентификатор и отложить фактическое создание компонента.

   {
            header: 'Row7',
            align: 'center',
            renderer: renderCmp,
            dataIndex: 'cmpname',
            width: 100
        }


// Renderer function
    function renderCmp(value, id, r)
    {

            var id = Ext.id();
            if (r.data.cmpname )
            {
                createGridButton.defer(10, this, ['One', id, r]);
                return('amp;<div id="'   id   '"amp;>amp;</divamp;>');
            }else
            {
                createGridButton.defer(10, this, ['Two', id, r]);
                return('amp;<div id="'   id   '"amp;>amp;</divamp;>');
            }

    }
    function createGridButton(value, id, record) {
        new Ext.Button({
            text: value,
            iconCls: 'my-icon',
            handler : function(btn, e) {
                alert('Componet in Row');
            }
        }).render(document.body, id);
    }
 

Надеюсь, это вам поможет..

Комментарии:

1. Размещать ссылки на похоть плохо. Если ссылка оборвалась, ваш ответ бесполезен. Я удалю свой отрицательный голос, если вы это исправите.

2. Спасибо за это. Я постараюсь не публиковать никаких ссылок в своих ответах .. приветствия 🙂