1

グリッド レイアウトにアクション列アイコンがあり、アイコンをクリックすると、ウィンドウ フォーム パネルが開きました。アイコンをクリックすると、フィールドセットのダイナミックレイを構築しています。フィールドセットにはボタンと画像が含まれます。

//Below is the code
for (var j = 0; j < productPictures.length; j++) {
    var values = productPictures[j].value;
    var idPic = productPictures[j].idProductPicture;
    alert(idPic);
    fieldset.add({
        xtype: 'container',
        layout: 'hbox',
        items: [{
            xtype: 'box',
            autoEl: {
                tag: 'img',
                src: '/files/product/' + idProduct + '/picture/100x75/' + values,
                height: '50px',
                width: '50px'
            }
        }, {
            xtype: 'button',
            name: 'remove' + idPic,
            width: 200,
            text: 'Remove',
            handler: function () {
                alert(idPic);
                Ext.Ajax.request({
                    url: '/admin/productpicture?id=' + idPic + '&memberId=' + idMember + '&idProduct=' + idProduct,
                    method: 'DELETE',
                    success: function (response) {
                        Ext.Msg.alert('Status', 'Image Deleted succesfullly.');
                    },
                    failure: function () {
                        Ext.Msg.alert('Status', 'There is an error.');
                    }
                })
            }

        }]
    })

}

私が得ている問題は、ボタンのハンドラーがすべてのループに伴う動的な値を受け入れるようにしたいということです.しかし、各ボタンのオンクリックは同じ値(ループの最初の値)を与えます.それを動的にする方法すべての画像に対してパラメータを動的に渡すことができます。

4

1 に答える 1

1

スコーピングの問題が発生しています。あなたがする必要があるのは、ボタン設定で変数を保持することです。

あなたはこのようなことをすることができます:

{
    xtype: 'button',
    name: 'remove' + idPic,
    idPic: idPic,
    width: 200,
    text: 'Remove',
    handler: function (button) {
        alert(button.idPic);
        //the rest...
    }
}
于 2013-02-26T12:28:20.060 に答える