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
Javascript 在Extjs grid On options select from组合框中,它从网格中删除所有记录的选择_Javascript_Extjs_Extjs4_Extjs4.1_Extjs Grid - Fatal编程技术网

Javascript 在Extjs grid On options select from组合框中,它从网格中删除所有记录的选择

Javascript 在Extjs grid On options select from组合框中,它从网格中删除所有记录的选择,javascript,extjs,extjs4,extjs4.1,extjs-grid,Javascript,Extjs,Extjs4,Extjs4.1,Extjs Grid,在“从选项中选择”组合中,它将从网格中删除所有记录的选择,甚至在您完成编辑时也将删除当前记录的选择 从表中选择所有行 单击最后一列单元格,它将显示用于编辑单元格的组合框,同时所有其他记录将被取消选中这是一个问题 现在,从组合框中选择值并单击任何其他记录或某处,您会注意到编辑的行也会被取消选中 我正在使用4.1.*Extjs,我已经尝试覆盖celledit插件以及CheckboxModel 有没有办法让记录保持选中状态,直到我并没有特别从复选框列中取消选中它 如有任何帮助,我们将不胜感激 嘿,伙

在“从选项中选择”组合中,它将从网格中删除所有记录的选择,甚至在您完成编辑时也将删除当前记录的选择

  • 从表中选择所有行
  • 单击最后一列单元格,它将显示用于编辑单元格的组合框,同时所有其他记录将被取消选中这是一个问题
  • 现在,从组合框中选择值并单击任何其他记录或某处,您会注意到编辑的行也会被取消选中
  • 我正在使用4.1.*Extjs,我已经尝试覆盖celledit插件以及CheckboxModel

    有没有办法让记录保持选中状态,直到我并没有特别从复选框列中取消选中它

    如有任何帮助,我们将不胜感激


    嘿,伙计,我把你的小提琴叉了起来,做了一些改变,我想这可以解决你的问题:

    基本上,我用一个
    cellclick
    事件监听器向网格中添加了一个
    viewConfig
    。首先触发
    cellclick
    事件;在事件处理程序中,我们检查
    cellIndex
    参数的值,以确定单击哪个网格列触发事件。然后,我们将flag变量的值设置为
    cellIndex
    值,这样我们就可以在选择模型的
    beforedeselect
    事件处理程序中访问该值。最后,如果标志值不是0,则在取消选择之前从
    返回false

    代码如下:

    var store = Ext.create('Ext.data.Store', {
        fields: ['name', 'email', 'region'],
        data: [{
            name: 'xyz',
            email: 'xyz@xyz.com',
            region: 'Arizona'
        }, {
            name: 'xyz',
            email: 'xyz@xyz.com',
            region: 'Alaska'
        }, {
            name: 'xyz',
            email: 'xyz@xyz.com',
            region: 'Alaska'
        }, {
            name: 'xyz',
            email: 'xyz@xyz.com',
            region: 'Alabama'
        }]
    });
    var states = Ext.create('Ext.data.Store', {
        fields: ['abbr', 'name'],
        data: [{
            "abbr": "AL",
            "name": "Alabama"
        }, {
            "abbr": "AK",
            "name": "Alaska"
        }, {
            "abbr": "AZ",
            "name": "Arizona"
        }]
    });
    
    var targetedCell = -1;
    Ext.create('Ext.grid.Panel', {
        id: 'theGrid',
        viewConfig: {
            listeners: {
                cellclick: function(view, cell, cellIdx, record, row, rowIdx, eOpts) {
                    targetedCell = cellIdx;
                }
            }
        },
        title: 'data',
        store: store,
        width: 400,
        renderTo: Ext.getBody(),
        selModel: new Ext.selection.CheckboxModel({
            checkOnly: true,
            listeners: {
                beforedeselect: function (thisSelModel, record, idx, eOpts) {
                    if(targetedCell != 0) {
                        return false;
                    }
    
                    return true;
                }
            }
        }),
        columns: [{
            text: 'Name',
            dataIndex: 'name',
    
        }, {
            text: 'Email',
            dataIndex: 'email',
            flex: 1,
    
        }, {
            text: 'State',
            dataIndex: 'region',
            editor: {
                xtype: 'combo',
                store: states,
                displayField: 'name',
                valueField: 'name',
                listeners: {}
            }
        }],
        plugins: {
            ptype: 'cellediting',
            clicksToEdit: 1
        }
    
    });
    

    我认为,当你使用checkboxmodel时,它会以这种方式运行,因为当你使用checkboxmodel时,有两种方法可以选择一行,即使你在点击任何单元格时限制选择一行,你也无法在同一点打开下拉列表。您是否需要复选框模型?您仅出于选择或任何其他特定原因使用它?这是一个框架错误,已在4.2.x中修复。您有可能升级吗?@Harshitsah CheckboxModel有一个checkOnly属性,可以通过行单击禁用选择,即使我将其设置为true,它仍然无法按预期工作。@Alexander不可能升级upgrade@swapnilsolanke然后您可以直接使用网格选择进行发送。不需要复选框,没问题。很高兴这有帮助。