取消选中复选框以检查ext.js中的所有内容

时间:2016-02-16 11:27:33

标签: extjs checkbox

我有网格面板,它检查所有选项。但是我坚持使用值='N'的所选dataIndex。有Y或N.如果某些行的值为N,则在点击全部检查时不得检查。我已经对它进行了验证。这是工作。但是我也希望当我点击检查全部是否值为'N'时出现取消选中。这是我的代码

var sm;
sm = Ext.create('Ext.selection.CheckboxModel');
    gridMain = Ext.create('Ext.grid.Panel', {
        id: 'gridMyapproval',
        renderTo: Ext.get("sa-grid"),
        store: 'myapproval-store',
        selModel: sm,
        height: mainContentHeight - 63, //480//mainContentHeight-138,
        //title: 'Request',
        columns: [{
            text: 'Request Type',
            width: 100,
            dataIndex: 'WorkflowType'
        }, {
            text: 'Requestor ID',
            width: 100,
            dataIndex: 'RequestedByID'
        }, {
            text: 'Requestor Name',
            width: 200,
            dataIndex: 'RequestedByName'
        }, {
            text: 'Description',
            flex: 1,
            dataIndex: 'RequestDescription'
        }, {
            text: 'Status',
            width: 150,
            dataIndex: 'RequestStatusDescription'
        },
        {
            text: 'EnableApprove',
            width: 150,
            dataIndex: 'EnableApprove'
        },
        ],
        dockedItems: [{
            xtype: 'toolbar',
            items: [actApproveAll]
        }],
        listeners: {
            itemdblclick: function (view, record, item, index, e, eOpts) {
                isGridClicked = true;
                ViewDetails(FormState.VIEW);
            },
            afterrender: function (row, model, index) {
                //$('.x-column-header-checkbox').css('display','none');
               if (model.data.EnableApprove == 'N') {
                    grid.getSelectionModel().deselect();
                }
            },
            selectionchange: function (row, model, index) {
                if (model.data.EnableApprove == 'N') {
                    grid.getSelectionModel().deselect();
                }
            },
            beforeselect: function (row, model, index) {
                if (model.data.EnableApprove == 'N') {
                    MsgBox("Enable Approve !");
                    return false;
                }
            }
        }
    });

我试图在afterrenderer上写它,但它不起作用。

1 个答案:

答案 0 :(得分:0)

我认为您必须覆盖Ext.selection.CheckboxModelView的{​​{3}}(selectAll)和sourcedeselectAll)方法。

检查source然后回答,我想解决方案是您需要的。