extjs Grid checkboxmodel分组和折叠问题,选中行项目复选框

extjs Grid checkboxmodel分组和折叠问题,选中行项目复选框,extjs,extjs4.2,Extjs,Extjs4.2,我正在使用Extjs网格分组和折叠功能。 问题在于,每当任意组折叠时,在单个行中选择复选框。如果我选中/取消选中该复选框,则不是单击第行中的复选框,而是选择/取消选中其他一些复选框。可能是什么问题 下面是代码 Ext.define('extGrid', { extend: 'Ext.grid.Panel', alias: 'widget.myGrid', id: 'myGrid', autoScroll: true, height: 700, st

我正在使用
Extjs网格
分组和
折叠
功能。 问题在于,每当任意组折叠时,在单个行中选择复选框。如果我选中/取消选中该复选框,则不是单击第行中的复选框,而是选择/取消选中其他一些复选框。可能是什么问题

下面是代码

Ext.define('extGrid', {
    extend: 'Ext.grid.Panel',
    alias: 'widget.myGrid',
    id: 'myGrid',
    autoScroll: true,
    height: 700,
    store: 'myStore',
    preventHeader: true,

    {
    ftype: 'grouping',
    groupHeaderTpl: [                                                                                             
                 '<input id="\'check_{[values.rows[0].data.Id]}\'" class="chkGrp" type="checkbox" > <div style="display:inline-block; min-width: 500px;" >({[values.children.length]})</div> {[Ext.Date.format(new Date(values.rows[0].data.dueDate),\'d-M-Y\')]} '
                ],
           hideGroupedHeader: false,
           startCollapsed: false,
           collapsible: true                                                                       
    },
        selType: 'checkboxmodel', 
        selModel: {         
            injectCheckbox: 0,
            pruneRemoved: false,
            allowDeselect: false,
            checkOnly: true,
            singleSelect: false,
        },
        listeners: {
                groupclick: function(grid, field, value, e){
                                var t = e.getTarget('.chkGrp');
                                  if (t) {
                                                var checked = t.checked;  
                                                var groupingFeature = grid.up('grid').getView().features[0];
                                                groupingFeature.expand(value);

                                                if (checked) {
                                                    Ext.get(t.id).dom.checked = true;
                                                } else {
                                                    Ext.get(t.id).dom.checked = false;  
                                                }

                                                grid.getStore().each(function(rec, index){
                                                  if(rec.data.m == value){
                                                  grid.getSelectionModel().setLocked(false);
                                                                if(checked) {
                                                                        grid.getSelectionModel().select(index, true);
                                                                } else {
                                                                        grid.getSelectionModel().deselect(index);
                                                                }
                                                  }
                                                });

                                  } else {
                                      var checkBoxArray = Ext.get(field).query('.chkGrp');
                                      if (checkBoxArray.length > 0) {
                                          var checkBox = checkBoxArray[0];  
                                          Ext.get(checkBox.id).dom.checked = checkBox.checked;
                                      }


                                  }
                }
    },
    columns: [
        {
            header: 'test',
            dataIndex: 'test1',
            width: 200,
        }, {
            header: 'test2',
            sortable: true,
            width: 400,
            dataIndex: 'test3',
        },

    ],
    collapsible: true,
    columnLines: true,
    plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
        clicksToEdit: 1
    })]
});
Ext.define('extGrid'{
扩展:“Ext.grid.Panel”,
别名:“widget.myGrid”,
id:'myGrid',
autoScroll:是的,
身高:700,
商店:“myStore”,
对,,
{
ftype:'分组',
groupHeaderTpl:[
“({[values.childrence.length]}{[Ext.Date.format(新日期(values.rows[0].data.dueDate),\'d-M-Y\')]””
],
hideGroupedHeader:false,
startCollapsed:错误,
可折叠:正确
},
selType:'checkboxmodel',
selModel:{
复选框:0,
普拉内尔:错,
allowDeselect:false,
checkOnly:对,
singleSelect:false,
},
听众:{
groupclick:函数(网格、字段、值、e){
var t=e.getTarget('.chkGrp');
if(t){
var checked=t checked;
var groupingFeature=grid.up('grid').getView().features[0];
groupingFeature.expand(值);
如果(选中){
Ext.get(t.id).dom.checked=true;
}否则{
Ext.get(t.id).dom.checked=false;
}
grid.getStore().each(函数(rec,index){
if(rec.data.m==值){
grid.getSelectionModel().setLocked(false);
如果(选中){
grid.getSelectionModel().select(index,true);
}否则{
grid.getSelectionModel()。取消选择(索引);
}
}
});
}否则{
var checkBoxArray=Ext.get(field.query)('.chkGrp');
如果(checkBoxArray.length>0){
var checkBox=checkBoxArray[0];
Ext.get(checkBox.id).dom.checked=checkBox.checked;
}
}
}
},
栏目:[
{
标题:“测试”,
dataIndex:'test1',
宽度:200,
}, {
标题:“test2”,
可排序:是的,
宽度:400,
dataIndex:'test3',
},
],
可折叠的:是的,
专栏:没错,
插件:[Ext.create('Ext.grid.plugin.CellEditing'{
单击编辑:1
})]
});

我在下面的URL中找到了修复程序,它对我有效


与论坛网站不同,我们不会在网站上使用“谢谢”或“感谢任何帮助”或签名。顺便说一句,这是“提前感谢”,而不是“提前感谢”。