extjs 4 рендеринг всплывающей подсказки на сетке на вкладке - PullRequest
2 голосов
/ 31 августа 2011

Я работаю с Extjs 4 и использую Designer 1.2.0. У меня проблемы с функцией рендеринга сетки, которую я использую для отображения подсказки.Сетка находится на вкладке панели.В первый раз все работает нормально, когда я открываю панель вкладок, но когда я закрываю панель вкладок и снова открываю ее, initComponent () больше не вызывается, поэтому подсказка не отображается & гиперссылка эффект уходит.Что может быть решением для этой проблемы?ниже мой код:

Ext.define('MyApp.view.ItemManager', {
    extend: 'MyApp.view.ui.ItemManager',

    initComponent: function() {
       Ext.QuickTips.init();
         var me = this;
         me.callParent(arguments);
              me.down('#itemManager').columns[3].renderer=function(value,metaData,record,colIndex,store,view){
                var imgpath="<img style=\'margin: 2px 0;height:150px;width:150px;\' src=\' /items/"+record.data.id +" '/>";

                metaData.tdAttr = 'data-qtip=" '+imgpath +'"' ;
                return '<a href="/items/imgdownload?id='+record.data.id+'">'+ record.data.img_filename +'</a>';
              }
      }
});

Однако, когда я пишу код рендерера в ui файле, сгенерированном при экспорте проекта из конструктора, все работает нормально.Проблема в том, что если я запишу рендер в файле ui , он будет перезаписываться каждый раз, когда я экспортирую проект: (

1 Ответ

1 голос
/ 28 сентября 2011
  1. Ext.QuickTips.init() должен вызываться только 1 раз и должен быть перемещен в глобальное местоположение.
  2. Вам необходимо переместить ваше визуализированное определение в фактический столбец, которому оно принадлежит: { ..., dataIndex : 'myColumn', rendered : function (value, metaData, etc) { return value; }, title : 'My Column Title', ... }

EDIT

Ниже приведен пример:

Ext.define('MyApp.view.ItemManager', {
    extend: 'MyApp.view.ui.ItemManager',

    initComponent: function() {
        //Ext.QuickTips.init(); // move to global js file. only call once.
        var me = this;
        me.callParent(arguments);

        if (!me.down('#itemManager').columns[3].renderer) {
            me.down('#itemManager').columns[3].renderer=function(value,metaData,record,colIndex,store,view) {
                var imgpath="<img style=\'margin: 2px 0;height:150px;width:150px;\' src=\' /items/"+record.data.id +" '/>";

                metaData.tdAttr = 'data-qtip=" '+imgpath +'"' ;
                return '<a href="/items/imgdownload?id='+record.data.id+'">'+ record.data.img_filename +'</a>';
            }
        }
    }
});
...