1

我的网格布局中有一个操作列图标,单击图标我打开了一个窗口表单面板。单击该图标,我正在构建一个动态字段集。Fieldset 包括按钮和图像。

//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 回答