2011-12-19 12 views
0

ユーザー定義のSenchaタッチコンポーネント(Ext.extend)をSenchaタッチリストコントロール内の各アイテムのパネルとして使用する方法はありますか?このSenchatouchリスト項目のユーザー定義コンポーネント

内線を生成するために

{ 'リスト'、itemTpl」 '{dataプロパティ1}' XTYPE:}私はこれを行うことができます知っている

  • .List

    ------------------------------------------- 
    | HTML from itemTpl for listStore Item 1 | 
    |-----------------------------------------| 
    | HTML from itemTpl for listStore Item 1 | 
    |-----------------------------------------| 
    | HTML from itemTpl for listStore Item 1 | 
    |-----------------------------------------| 
    

    私がしたいことは次のとおりです。

    MyComponent = Ext.extend(Ext.Panel) { Items: [ Ext.Component1, Ext.Component2 ] } 
    Ext.reg('mycomponent', MyComponent); 
    
    { xtype: 'list', itemTpl: { Ext.MyComponent } } 
    

    リスト内のすべてのリスト項目が私のユーザー定義の構成要素としてレンダリングされるように、この

    ----------------------------------- 
    | { xtype: 'mycomponent' }  | 
    |---------------------------------| 
    | { xtype: 'mycomponent' }  | 
    |---------------------------------| 
    | { xtype: 'mycomponent' }  | 
    |---------------------------------| 
    

    のようなものを生成します。

    これは可能ですか?それはまあまあですか?あなたはrenderToプロパティを使用してDOM内の任意のdivに任意のコンポーネントを追加することができます

    { xtype:'MTATextField', fieldLabel:'or Other' } 
    

答えて

0
Ext.define('Ext.TextField',{ 
    extend: 'Ext.form.field.Text', 
    xtype: 'TextField', 
    labelAlign: 'right', 
    listeners: { 
     beforerender : function(){ 
      // var tmp = new Ext.util.TextMetrics("asdfasdf"); 
      this.labelWidth = gTextUtil.getWidth(this.getFieldLabel()) + 10 + gLeftMargin; 
      this.width = this.labelWidth + 100; 
     } 
    } 
}); 

。ちょうどその クエリ.wrapper.someclass- {ID}、あなたのリスト項目テンプレートに任意の修飾

<div class='someclass-{id} .wrapper'/> 

を追加し、リストのリフレッシュイベント中renderTo作成コンポーネントを使用しています。あとで古いコンポーネントを削除することを忘れないでください。この場合、それはあなたの責任です。このように追加されたコンポーネントはComponent Managerによって管理されますが、親はありません。

関連する問題