Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gridview 在ExtJS 4.1.3中选中复选框时,如何禁用/灰显除顶部空白行和复选框模型之外的整个网格_Gridview_Extjs_Extjs4_Extjs4.1 - Fatal编程技术网

Gridview 在ExtJS 4.1.3中选中复选框时,如何禁用/灰显除顶部空白行和复选框模型之外的整个网格

Gridview 在ExtJS 4.1.3中选中复选框时,如何禁用/灰显除顶部空白行和复选框模型之外的整个网格,gridview,extjs,extjs4,extjs4.1,Gridview,Extjs,Extjs4,Extjs4.1,我有一个带有复选框选择模型的网格,只要我选中任何复选框,就会在网格顶部和标题行下方添加一个空行。当选中checkbox时,我想禁用/灰显除顶部空白行(第1行)和复选框模型(第1列)之外的整个网格。 我试过使用grid.disable(true)但它禁用了整个网格 如何限制第一行和第一列 这是我的代码: var mystore = new Ext.data.ArrayStore({ fields: datastore.fields, data: datastore.arrData

我有一个带有复选框选择模型的
网格
,只要我选中任何复选框,就会在网格顶部和标题行下方添加一个空行。当选中
checkbox
时,我想禁用/灰显除顶部空白行(第1行)和复选框模型(第1列)之外的整个网格。 我试过使用
grid.disable(true)
但它禁用了整个网格

如何限制第一行和第一列

这是我的代码:

var mystore = new Ext.data.ArrayStore({
    fields: datastore.fields,
    data: datastore.arrData
});

var sm = Ext.create('Ext.selection.CheckboxModel', {
    mode: 'SIMPLE',
    checkOnly: true,
    renderer: function (v, p, record) {
        if (record.raw[record.raw.length - 1] == '')
            return '<div class="d-icon-right-list info-icon" >&nbsp;</div>';
        else
            return '<div class="x-grid-row-checker">&nbsp;</div>';
    },
    listeners: {
        selectionchange: function (sm, selected, eOpts) {
            listCB = selected;
            var gridID = Ext.getCmp('CiEditGrid');
            if (selected.length > 0) {
                gridID.getView().removeRowCls(0, 'hidden');
                gridID.getView().addRowCls(0, 'first_row');
            } else {
                gridID.getView().addRowCls(0, 'hidden');
            }
        },
        beforeselect: function (selModel, record, index) {
            var gridID = Ext.getCmp('CiEditGrid');
            popupIndex = index;
            if (!((ColumnIndex == undefined || ColumnIndex == 0)))
                return false;
        },
        beforedeselect: function (selModel, record, index) {
            if (!((ColumnIndex == undefined || ColumnIndex == 0) || (index == 0 && ColumnIndex != 0)))
                return false;
        }
    }
});

Ext.tip.QuickTipManager.init();

var CiGrid = Ext.create('Ext.grid.Panel', {
    store: mystore,
    border: false,
    columns: datastore.columns,
    selType: 'cellmodel',
    selModel: sm,
    id: 'CiEditGrid',
    height: 775,
    columnLines: true,
    enableColumnHide: false,
    viewConfig: {
        getRowClass: function (record, rowIndex, rowParams, store, index) {
            if (listCB.length == 0 && rowIndex == 0 && record.raw[record.raw.length - 1] == '') {
                return "hidden";
            } else if (listCB.length != 0 && rowIndex == 0 && record.raw[record.raw.length - 1] == '')
                return "first_row";
        },
        forceFit: false,
        deferEmptyText: false,
        emptyText: '<div class="emptyTextClass">' + noRecordsFoundMsg + '</div>'
    },
    lockedViewConfig: {
        emptyText: ''
    },
    listeners: {
        afterrender: function (grid, eOpts) {
            var gridIndxArray = grid.columns;
            for (var i = 0; i < gridIndxArray.length; i++) {
                var Indx = i - 1;
                if (Indx == -1)
                    Indx = 0;
                ColumnIndexArray.push({
                    dataIndx: gridIndxArray[i].dataIndex,
                    StoreIndx: Indx
                });
            }
            lastDataIndex = ColumnIndexArray[ColumnIndexArray.length - 1].dataIndx;
        },
        columnmove: function (ct, column, fromIdx, toIdx) {
            isColumnreconfigured = true;
        },
        itemmouseenter(grid, record, item, index, e, eOpts) {
            if (index == 0)
                Ext.fly(item).set({
                    'data-qtip': MultiEditRowTooltip
                });
        },
        sortchange(ct, column, direction, eOpts) {
            console.log(column, ct);
        },
        itemclick: function (data, record, item, index, e, eOpts) { // data,td, cellIndex, record, tr, rowIndex,e,eOpts 
            popupIndex = index;
            var position = data.getPositionByEvent(e);
            ColumnIndex = position.column;
            RowIndex = position.row;
            if (index == 0) {
                multiCol.push({
                    colIndex: ColumnIndex
                });
            }
            EditedValues.push({
                colvalue: ColumnIndex,
                rowvalue: popupIndex
            });
            if (isColumnreconfigured) {
                for (var i = 0; i < ColumnIndexArray.length; i++) {
                    if (this.getView().getGridColumns()[ColumnIndex + 2].dataIndex == ColumnIndexArray[i].dataIndx) {
                        ColumnIndex = ColumnIndexArray[i].StoreIndx;
                        break;
                    }
                }
            }
            var colHeader = this.columns[ColumnIndex + 1];
            if ((typeof (colHeader.editor) != 'undefined' && colHeader.editor.xtype == 'textareafield') || (typeof (colHeader.field) != 'undefined' && colHeader.field.xtype == 'textareafield')) {
                var header = colHeader.text;
                var dataindex = colHeader.dataIndex;
                var isReadonly = colHeader.isReadonly;
                maxLengthForPopup = colHeader.length;
                dataIndexForPopup = dataindex;
                var old = this.getStore().data.getAt(index).get(dataindex);
                showExpansionWindow(record, old, header, maxLengthForPopup, isReadonly);
            }
        }
    },
    cls: 'custom-dirty',
    layout: 'fit',
    border: false,
    autoWidth: true,
    plugins: [cellEditing],
    renderTo: 'grid'
});
var mystore=new Ext.data.ArrayStore({
字段:datastore.fields,
数据:datastore.arrData
});
var sm=Ext.create('Ext.selection.CheckboxModel'{
模式:“简单”,
checkOnly:对,
渲染器:函数(v、p、记录){
if(record.raw[record.raw.length-1]='')
返回“”;
其他的
返回“”;
},
听众:{
selectionchange:功能(sm、selected、eOpts){
listCB=已选择;
var gridID=Ext.getCmp('CiEditGrid');
如果(已选定。长度>0){
gridID.getView().removeowcls(0,“隐藏”);
gridID.getView().addRowCls(0,“第一行”);
}否则{
gridID.getView().addRowCls(0,“隐藏”);
}
},
beforeselect:功能(选择模型、记录、索引){
var gridID=Ext.getCmp('CiEditGrid');
popupIndex=指数;
如果(!((ColumnIndex==undefined | | ColumnIndex==0)))
返回false;
},
beforedeselect:函数(选择模型、记录、索引){
如果(!((ColumnIndex==未定义的| | ColumnIndex==0)| |(index==0&&ColumnIndex!=0)))
返回false;
}
}
});
Ext.tip.QuickTipManager.init();
var CiGrid=Ext.create('Ext.grid.Panel'{
商店:mystore,
边界:错,
columns:datastore.columns,
selType:'cellmodel',
型号:sm,
id:“CiEditGrid”,
身高:775,
专栏:没错,
enableColumnHide:false,
视图配置:{
getRowClass:函数(记录、行索引、行参数、存储、索引){
if(listCB.length==0&&rowIndex==0&&record.raw[record.raw.length-1]==“”){
返回“隐藏”;
}else if(listCB.length!=0&&rowIndex==0&&record.raw[record.raw.length-1]='')
返回“第一行”;
},
forceFit:false,
deferEmptyText:false,
清空文本:“”+noRecordsFoundMsg+“”
},
lockedViewConfig:{
emptyText:'
},
听众:{
afterrender:函数(网格、eOpts){
var gridIndxArray=grid.columns;
对于(var i=0;i
提供一个代码,显示您的工作,并具体描述问题所在。@MarthyM添加了代码,我在这里添加了CB模型,并在选择任何CB时添加了一个特殊样式的行。现在我想在选中任何复选框后立即禁用整个网格,但只有CB selection列和特殊样式的行应该是可编辑的。请提供一个代码来显示您的工作,并具体描述问题所在。@MarthyM添加了代码,在这里,我添加了CB模型,并在选择任何CB时添加了一个特殊样式的行。现在我想去