javascript - How to disable the delete button using if condition in Extjs - Stack Overflow

How to disable the delete button using if condition in Extjs for ex;i want to disable the button if it

How to disable the delete button using if condition in Extjs for ex;i want to disable the button if it satifies the given if condition else remain enabled. if(validAction(entityHash.get('entity.xyz'),actionHash.get('action.delete')))

This is the grid Delete button code.

Ext.reg("gridheaderbar-inActive", Ad.GridInActiveButton,{     
             xtype: 'tbspacer', width: 5
});  

Ad.GridCampDeleteButton = Ext.extend(Ext.Toolbar.Button, {

    //text: 'Delete',

    cls: 'ad-img-button',
    width:61,
    height:40,
    iconCls: 'ad-btn-icon',
    icon: '/webapp/resources/images/btn_del.png',
    handler:function(){

        statusChange(this.parentBar.parentGrid, 'Delete')
    }
});

How to disable the delete button using if condition in Extjs for ex;i want to disable the button if it satifies the given if condition else remain enabled. if(validAction(entityHash.get('entity.xyz'),actionHash.get('action.delete')))

This is the grid Delete button code.

Ext.reg("gridheaderbar-inActive", Ad.GridInActiveButton,{     
             xtype: 'tbspacer', width: 5
});  

Ad.GridCampDeleteButton = Ext.extend(Ext.Toolbar.Button, {

    //text: 'Delete',

    cls: 'ad-img-button',
    width:61,
    height:40,
    iconCls: 'ad-btn-icon',
    icon: '/webapp/resources/images/btn_del.png',
    handler:function(){

        statusChange(this.parentBar.parentGrid, 'Delete')
    }
});
Share Improve this question edited Mar 21, 2016 at 5:01 Ashish Aggarwal 3,0262 gold badges24 silver badges47 bronze badges asked Feb 23, 2011 at 12:29 samplesample 612 gold badges4 silver badges6 bronze badges 2
  • So if I understand it correctly you want to disable the delete button based on some info from the focused record in the grid? – wimvds Commented Feb 23, 2011 at 12:53
  • yes..want to disable the delete button based on if condition. – sample Commented Feb 23, 2011 at 13:01
Add a ment  | 

2 Answers 2

Reset to default 2

create actioncolumn and make custom renderer:

{
    xtype: 'actioncolumn',
    width: 38,
    renderer: function (val, metadata, record) {
        this.items[0].icon = '${CONTEXT_PATH}/images/' + record.get('fileType') + '.png';
        this.items[0].disabled = !record.get('isDownloadActionEnable');
        this.items[1].disabled = !record.get('isDeleteActionEnable');
        metadata.style = 'cursor: pointer;';
        return val;
    },
    items: [
        {
            icon: '${CONTEXT_PATH}/images/pdf.png',  // Use a URL in the icon config
            tooltip: 'Download',
            handler: function (grid, rowIndex, colIndex) {
                //handle
            }
        },
        {
            icon: '${CONTEXT_PATH}/images/delete.png',  // Use a URL in the icon config
            tooltip: 'Delete',
            handler: function (grid, rowIndex, colIndex) {
                handle
            }
        }
    ]
}

in this example You see additionally how to change dynamically icon.

One way to solve it is to attach a unique ID to your delete button and bind a listener to the selectionchange event of your SelectionModel, whenever the selection changes you can check whatever you want and enable/disable the button as you see fit.

ie.

Ad.GridCampDeleteButton = Ext.extend(Ext.Toolbar.Button, {
    id: 'btnDelete',
    cls: 'ad-img-button',
...
});

and in your selectionmodel do something like this :

var sm = new Ext.grid.CheckboxSelectionModel({
    ...
    ,listeners: {
        'selectionchange' : {
            fn: function(sm) {
                if (sm.hasSelection()) {
                    var selected = sm.getSelected();
                    if (selected.get('field') == value) {
                        Ext.getCmp('btnDelete').disable();
                    }
                    else {
                        Ext.getCmp('btnDelete').enable();
                    }
                }
            }
            ,scope: this
        }
    }
});

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745247597a4618482.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信