сенсорная форма поиска sencha - PullRequest
0 голосов
/ 26 июня 2011

Я действительно надеюсь, что кто-то может мне помочь. Кажется, это должно быть очевидно, но документация sencha не очень легка для чтения и неполна.Я пытаюсь создать форму поиска, но она, кажется, не занимает магазин или URL, и я не могу понять, как добавить параметры, такие как страница?Кто-нибудь может помочь?Этот код просто выдает Не удалось загрузить ресурс: null.

        var searchField = new Ext.form.Search({
            value:'Search',
            url: 'someurl',
            store: this.data_store,
            cls:'searchfield',
            listeners: {
                focus: function(){ searchField.setValue(''); },
                blur: function(){ if( searchField.getValue()=='' ){ searchField.setValue('Search'); } },
                success: function(e){
                    console.log(e);
                }
            }
        });

   this.dockedItems = [ searchField ];

1 Ответ

0 голосов
/ 03 июля 2011

Ext.form.FormPanel не принимает Ext.data.Store или Ext.data.Model напрямую, но имеет дело с экземплярами Ext.data.Model.Допустим, у вас есть следующая модель:

Ext.regModel('MyForm', {
    fields: [{name: 'id', type: 'int'},'name','description']
    proxy: {
    type: 'ajax',
        url: 'url_to_load_and_save_form'
    }
})

Теперь ваше определение формы будет выглядеть примерно так:

Ext.form.MyForm = Ext.extend(Ext.form.FormPanel, {
    record : null,
    model: 'MyForm',

    items: [{
        xtype: 'hidden',
        name: 'id' 
    },{
        xtype: 'textfield',
        name: 'name',
        allowBlank: false
    },{
        xtype: 'textarea',
        name: 'description'
    }],
    submit : function(){
        var record = this.getRecord() || Ext.ModelMgr.create({}, this.model);
        this.updateRecord(record , true);
        record.save({
            scope: this,
            success : function(record, opts){
                this.fireEvent('saved', record);
            },
            callback: function(){
                this.setLoading(false);
            }
        });
    }
});
Ext.reg('MyForm',Ext.form.MyForm);

Конечно, вы должны добавить некоторые проверки и кнопку для фактического вызоваExt.form.MyForm.submit метод.

...