Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.12.2011, 08:43
Аспирант
Отправить личное сообщение для Bkmz_1_ Посмотреть профиль Найти все сообщения от Bkmz_1_
 
Регистрация: 03.12.2009
Сообщений: 56

Кто-нибудь прикручивал SearchField.js ?
Пытаюсь прикрутить SearchField.js в ExtJS 4 выдает ошибку. Это токо у меня или у кого-то тоже было?
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2011, 16:04
Аспирант
Отправить личное сообщение для Bkmz_1_ Посмотреть профиль Найти все сообщения от Bkmz_1_
 
Регистрация: 03.12.2009
Сообщений: 56

Никак не могу понять в чем проблема.


Скрин ошибки:



Вот код окошка в котором расположено поле поиска

Ext.define('MyApp.view.Firms', {
    extend: 'Ext.window.Window',
    alias : 'widget.firms',
    
    id: 'all-firms',
    height: 500,
    width: 450,
    layout: 'fit',
    title: 'Предприятия города',
    modal: true,
    x: 100,
    y: 50,
    
    initComponent: function() {
       this.dockedItems = [
            {
                xtype: 'toolbar',
                dock: 'top',
                items: [
                    {
                        xtype: 'button',
                        iconCls: 'icon-add-firm',
                        text: 'Добавить'
                    }
                ]
            },
            {
                xtype: 'toolbar',
                dock: 'bottom',
                items: [
                    {
                        xtype: 'pagingtoolbar',
                        store: 'Firms',
                        width: 270
                    },
                    {
                        xtype:'tbfill'
                    },
                    {
                        xtype: 'searchfield',
                        store: 'Firms',
                        params: {start: 0, limit: 16}
                    }
                ]
            }
       ],
       this.items = [
            {
                xtype: 'gridpanel',
                border: 'false',
                id: 'firm-list',
                title: '',
                loadMask: true,
                store: 'Firms',
                columns: [
                    {
                        xtype: 'gridcolumn',
                        dataIndex: 'name',
                        flex: 1,
                        text: 'Список предприятий'
                    }
                ]
            }
        ],
        this.callParent(arguments);
    }

});


Я поместил searchfield в папку с view.
Вот содержание файла поиска

Ext.define('MyApp.view.Search', {
    extend: 'Ext.form.field.Trigger',
    
    alias: 'widget.searchfield',
    
    trigger1Cls: Ext.baseCSSPrefix + 'form-clear-trigger',
    
    trigger2Cls: Ext.baseCSSPrefix + 'form-search-trigger',
    
    hasSearch : false,
    paramName : 'query',
    
    initComponent: function(){
        this.callParent(arguments);
        this.on('specialkey', function(f, e){
            if(e.getKey() == e.ENTER){
                this.onTrigger2Click();
            }
        }, this);
    },
    
    afterRender: function(){
        this.callParent();
        this.triggerEl.item(0).setDisplayed('none');  
    },

    onTrigger1Click : function(){
        var me = this,
            store = me.store,
            proxy = store.getProxy(),
            val;
            
        if (me.hasSearch) {
            me.setValue('');
            proxy.extraParams[me.paramName] = '';
            proxy.extraParams.start = 0;
            store.load();
            me.hasSearch = false;
            me.triggerEl.item(0).setDisplayed('none');
            me.doComponentLayout();
        }
    },

    onTrigger2Click : function(){
        var me = this,
            store = me.store,
            proxy = store.getProxy(),
            value = me.getValue();
            
        if (value.length < 1) {
            me.onTrigger1Click();
            return;
        }
        proxy.extraParams[me.paramName] = value;
        proxy.extraParams.start = 0;
        store.load();
        me.hasSearch = true;
        me.triggerEl.item(0).setDisplayed('block');
        me.doComponentLayout();
    }
});


Это стандартный плагин поиска, я только поменял путь к нему на 'MyApp.view.Search'

Может у кого-то есть хоть какие-то идеи как можно исправить?

Последний раз редактировалось Bkmz_1_, 08.12.2011 в 16:08.
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2011, 21:40
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

console.log(store);

что выводит?
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2011, 07:04
Аспирант
Отправить личное сообщение для Bkmz_1_ Посмотреть профиль Найти все сообщения от Bkmz_1_
 
Регистрация: 03.12.2009
Сообщений: 56

В ставил в файл "MyApp.view.Search".

initComponent: function(){

	var store = this.store;
	console.log(store);

        this.callParent(arguments);
        this.on('specialkey', function(f, e){
            if(e.getKey() == e.ENTER){
                this.onTrigger2Click();
            }
        }, this);
    },


Получаю



Вот сам Store

Ext.define('MyApp.store.Firms', {
    extend: 'Ext.data.Store',

    fields: [
        {name: 'name'}
    ],
    pageSize: 16,
    storeId: 'Firms',
    proxy: {
        type: 'ajax',
        actionMethods: {
           create : 'POST',
           read   : 'POST',
           update : 'POST',
           destroy: 'POST'
        },
        url: 'firmslist',
        reader: {
            type: 'json',
            root: 'results'
        }
    }
	
});

Последний раз редактировалось Bkmz_1_, 09.12.2011 в 08:03.
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2011, 07:56
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

Ну вот...а теперь посмотрите на вашу ошибку и подумайте может ли быть у строки "Firms" метод getProxy()?
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2011, 08:16
Аспирант
Отправить личное сообщение для Bkmz_1_ Посмотреть профиль Найти все сообщения от Bkmz_1_
 
Регистрация: 03.12.2009
Сообщений: 56

Я подумал и решил что не может. Но я не знаю как по другому передавать. Ведь в pagingtoolbar я Store передаю точно так же

{
   xtype: 'pagingtoolbar',
   store: 'Firms',
   width: 270
}


И он прекрасно его принимает и работает с ним.
Как же мне Store еще передавать в поиск?
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2011, 09:21
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

я не говорил что запись store: 'Firms' неверна, я вам намекнул, но вы не поняли, смотрите сюда ->http://docs.sencha.com/ext-js/4-0/#!....field.Trigger и попробуйте найти свойство store
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2011, 09:26
Аспирант
Отправить личное сообщение для Bkmz_1_ Посмотреть профиль Найти все сообщения от Bkmz_1_
 
Регистрация: 03.12.2009
Сообщений: 56

Т.е. этот плагин Custom Form Fields это просто самописная цацка?
Ответить с цитированием
  #9 (permalink)  
Старый 09.12.2011, 09:49
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

ну в примере ведь используется Ext.ux.form.SearchField
а у вас Ext.form.field.Trigger
Ответить с цитированием
  #10 (permalink)  
Старый 09.12.2011, 10:01
Аспирант
Отправить личное сообщение для Bkmz_1_ Посмотреть профиль Найти все сообщения от Bkmz_1_
 
Регистрация: 03.12.2009
Сообщений: 56

У меня используется то что в примере.
Ext.ux.form.SearchField это только путь к SearchField и он тоже наследует Ext.form.field.Trigger
Мой файл поиска это файл Ext.ux.form.SearchField только он лежит в другой папке и называется по другому
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кто нибудь так делал? Kuklavod Общие вопросы Javascript 9 04.11.2011 13:16
Кто нибудь подскажет onmouseout при ul > li > ul, или все Великие kudenv Элементы интерфейса 2 12.03.2011 12:34
Делал ли кто нибудь? Есть ли примеры? Владимир Седов Элементы интерфейса 2 18.02.2011 21:36
Кто рисует это? greatilya Оффтопик 2 19.01.2011 13:19
Кто нибудь делал такое? Mukhtar jQuery 3 23.11.2010 15:15