2011-12-17 7 views
0

Ext.view.Viewの各項目にカスタム値を追加します。アイテムがクリックされるときに開く必要があります。Ext.view.Viewのすべての項目(XTemplate)にカスタム値を設定(および取得)します

私はAPIドキュメントを読んでいますが、私はカスタム関数を設定する方法しか見つけられませんでしたが、カスタム属性も設定すると問題になりますか?

tpl: Ext.create('Ext.XTemplate', 
     '<tpl for=".">', 
     '<div class="mfo-view">', 
     '<img src="{image}" alt="{image}" />', 
     '<p>{title}</p>', 
     '</div>', 
     '</tpl>', 
     mycustomproperty: '{property}' 
    ), 
:私はこのような何かをしたいと思います

Ext.define('MyApp.view.desktop.Icons', { 
    extend: 'Ext.view.View', 
    alias : 'widget.iconsdataview', 

    tpl: Ext.create('Ext.XTemplate', 
    '<tpl for=".">', 
    '<div class="mfo-view">', 
    '<img src="{image}" alt="{image}" />', 
    '<p>{title}</p>', 
    '</div>', 
    '</tpl>' 
), 

    itemSelector: 'div.mfo-view', 
    store: 'Icons', 
    style: 'margin: 2em;', 
    overItemCls: 'mfo-view-over', 
    trackOver: true 
}); 

http://docs.sencha.com/ext-js/4-0/#!/api/Ext.XTemplate

を編集1:任意の提案私が読んでいる何

ため

感謝

、その後DBLCLICKイベント(擬似コード)

itemdblclick(obj, ...) { 
    openMyWindow(obj.mycustomproperty); 
} 

希望これは私がEXTJSの4.oほとんどが3.3であまりに働いていないが、私はあなたが次の操作を行うことができると信じて

+0

私は本当にあなたが何を求めているのか分かりません。達成したいことを示すためにいくつかのコードを含めることができますか(擬似コードでも役立ちます)? –

+0

@MattGreer:編集を参照してください。何か助けてくれてありがとうございます。 –

答えて

0

ようですテンプレートで作成されたオブジェクトはhtmlelementなので、実際にExtJSオブジェクトとして使用するには、Ext.getを使って要素を作成する必要があります。

私はitemdblclickメソッドのインデックスでストアにアクセスして解決しました。

編集1:

はさらに良いことに、あなたはインデックスを使用せずに、記録パラメータでアイテムにアクセスすることができます。

0

を支援します。

tpl: Ext.create('Ext.XTemplate', 
     '<tpl for=".">', 
     '<div class="mfo-view">', 
     '<img src="{image}" alt="{image}" />', 
     '<p>{title}</p>', 
     '</div>', 
     '</tpl>', 
     { mycustomproperty: '{property}' 
} 
    ), 
+0

アイテムをダブルクリックするとitemdblclickに入る方法は?私はそのプロパティを取得したいと思います。 –

+0

テンプレート内の何かにダブルクリックリスナーが必要なのですか? – codemonkeyww

+0

正確にはそうではありませんが、テンプレートが適用される各アイテムのカスタムプロパティが必要です。次に、ビューからトリガされたitemdblclickで、このプロパティを読んでみたいと思います。 –

関連する問題