sencha触摸搜索表单

时间:2011-06-26 17:21:19

标签: sencha-touch

我真的希望有人可以帮助我,看起来这应该是显而易见的,但是sencha文档不是很容易阅读和不完整。我正在尝试构建一个搜索表单,但它似乎没有采取商店或网址,我无法弄清楚如何添加像页面这样的参数?有人可以帮忙吗?此代码只生成无法加载资源: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 :(得分:0)

Ext.form.FormPanel不直接使用Ext.data.StoreExt.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方法的按钮。