7

リストの各行に Sencha ボタンを追加するにはどうすればよいですか? ボタンを配置する場所を示すために、画像にテキスト プレースホルダーを追加しました。

ここに画像の説明を入力

Ext.application({
    起動: 関数() {
        var view = Ext.Viewport.add({
            xtype: 'ナビゲーションビュー',

            項目: [
                {
                    xtype: 'リスト',
                    タイトル: 'リスト',
                    itemTpl: '{名前} [ボタン]',

                    お店: {
                        フィールド: ['名前'],
                        データ: [
                            { 名前: '1' },
                            { 名前: '2' },
                            { 名前: '3' }
                        ]
                    }、

                    リスナー: {
                        itemtap: 関数(リスト、インデックス、ターゲット、レコード) {
                            view.push({
                                xtype: 'パネル',
                                タイトル: record.get('名前'),
                                html: 'これは私のプッシュ ビューです!'
                            }))
                        }
                    }
                }
            ]
        });
    }
});
4

2 に答える 2

6

これは では実行できません。代わりExt.Listに を使用する必要があります。ComponentView

いくつかの重要な概念がありExt.dataview.Component.DataItemますExt.factory()

http://docs.sencha.com/touch/2-0/#!/guide/dataview

それが役に立てば幸い。

于 2012-04-23T18:32:27.030 に答える
5

Button の代わりに、リストの各行で Image を使用し、リスナーでクリック イベントを取得できます (私の場合はコントローラー クラスで行いました)。以下がお役に立てば幸いです:

ビューページを含むリスト:

items: [
   {
        xtype: 'list',
        ui: 'normal',
        itemTpl: [

            '<div class="x-list-item speaker">',
                    '<div class="avatar" style="background-image: url(resources/images/contactImages/{item6});"></div>',
                    '<div class="rightarrow" style="background-image: url(resources/images/homeScreenIphone/list_arrow.png);"></div>',
                    '<div class="image_popup_email" style="background-image: url(resources/images/commonImages/mail.png);"></div>',
                    '<div class="image_popup_workphone_icon" style="background-image: url(resources/images/commonImages/workphone_icon.png);"></div>',
                    '<div class="image_popup_phone" style="background-image: url(resources/images/commonImages/phone.png);"></div>',
                    '<h3>{item1}</h3>',
                    '<h4>{item2}</h4>',
            '</div>'
     ],
     store: 'ContactItemListStore'
   }
   ]

コントローラ クラス:

onContactSelect: function(list, index, element, record, evt){

    // if click on any icon(Cell/Work Phone/Email) in any row of list
    if(evt.getTarget('.image_popup_phone')) {

        var contactNoCell = record.getData().item4;
        window.location.href = "tel:"+contactNoCell;

    }else if(evt.getTarget('.image_popup_workphone_icon')) {

        var contactNoOffice = record.getData().item7;
        window.location.href = "tel:"+contactNoOffice;

    }else if(evt.getTarget('.image_popup_email')) {

        var emailId = record.getData().item5;
        window.location.href = "mailto:"+emailId;

    }else{

    // if click on list row only(not any icon)   
        if (!this.showContactDetail) {
            this.showContactDetail = Ext.create('MyApp.view.phone.MyContactDetail');
        }

        // Bind the record onto the show contact view
        this.showContactDetail.setRecord(record);

        // Push the show contact view into the navigation view
        this.getMain().push(this.showContactDetail);
    }
        //disable selection while select row in list
        list.setDisableSelection(true);
}
于 2012-11-07T13:22:46.827 に答える