2011-06-26 15 views
0

私は本当に誰かが私を助けてくれることを願っています。これは明白なはずですが、senchaのドキュメントは読みにくく、不完全ではありません。私は検索フォームを作成しようとしていますが、それは店やURLを取るように見えないと私はページのようなパラメータを追加する方法を把握することはできません?誰も助けることができますか?このコードは、リソース:nullをロードできませんでした。sencha touch検索フォーム

 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 ]; 

答えて

0

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.submitメソッドを呼び出すためのボタンで追加する必要があります。もちろん、

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); 

を使用すると、次のモデルを考えてみましょう。