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
ExtJS4:一个网格列,显示带有checkall标题的复选框,可以隐藏_Extjs_Checkbox_Selectionmodel - Fatal编程技术网

ExtJS4:一个网格列,显示带有checkall标题的复选框,可以隐藏

ExtJS4:一个网格列,显示带有checkall标题的复选框,可以隐藏,extjs,checkbox,selectionmodel,Extjs,Checkbox,Selectionmodel,我们使用的是ExtJS4.2,这就是我提出这个问题的背景 我需要在网格中有一个列: 在可以选择/取消选择的每行上显示一个复选框。它用于跟踪用户选择,而不是与底层存储数据同步。 标题中有一个checkall复选框,允许用户选择或取消选择网格中的所有行。 当页面呈现为用户权限或数据时,可以根据特定条件隐藏/删除。 我尝试了以下方法: SelModel-将满足第2项要求,但一旦定义,就不能进行操作,请参见 CheckColumn-满足第3项要求,但列标题中没有复选框请参见 有没有办法让我实现我想要的

我们使用的是ExtJS4.2,这就是我提出这个问题的背景

我需要在网格中有一个列:

在可以选择/取消选择的每行上显示一个复选框。它用于跟踪用户选择,而不是与底层存储数据同步。 标题中有一个checkall复选框,允许用户选择或取消选择网格中的所有行。 当页面呈现为用户权限或数据时,可以根据特定条件隐藏/删除。 我尝试了以下方法:

SelModel-将满足第2项要求,但一旦定义,就不能进行操作,请参见

CheckColumn-满足第3项要求,但列标题中没有复选框请参见

有没有办法让我实现我想要的

提前谢谢


海西

见我对这个问题的回答:


您需要添加的是,在网格存储的“更新”事件中,您需要手动创建代码,根据记录中的新值使用网格的selectionModel选择行。

请参阅我对该问题的回答:


您需要添加的是,在网格存储的“更新”事件中,您需要手动创建代码,根据记录中的新值使用网格的selectionModel选择行。

我有相同的要求,并且能够使用“Ext.selection.CheckboxModel”功能Ext 4.2。基本上,我通过config对象覆盖渲染器。我正在使用Sencha Architect 3,这是生成的代码:

selModel: Ext.create('Ext.selection.CheckboxModel', me.processMyCheckboxSelectionModel3({}))

processMyCheckboxSelectionModel1: function(config) {
        config.renderer = function(value, metaData, record, rowIndex, colIndex, store, view) {
            var status = record.get('Status');
            if (status  === 'Failed') {
                        var baseCSSPrefix = Ext.baseCSSPrefix;
                        metaData.tdCls = baseCSSPrefix + 'grid-cell-special ' + baseCSSPrefix + 'grid-cell-row-checker';
                        return '<div class="' + baseCSSPrefix + 'grid-row-checker">&#160;</div>';
            } else {
                        return '';
            }

        };
        return config;
}

当我希望渲染器显示复选框时,它返回的是复制自的内容,这种方法的唯一区别是我使用的是ext4.2内置的“Ext.selection.CheckboxModel”

我有同样的要求,能够使用Ext.selection.CheckboxModel功能Ext 4.2。基本上,我通过config对象覆盖渲染器。我正在使用Sencha Architect 3,这是生成的代码:

selModel: Ext.create('Ext.selection.CheckboxModel', me.processMyCheckboxSelectionModel3({}))

processMyCheckboxSelectionModel1: function(config) {
        config.renderer = function(value, metaData, record, rowIndex, colIndex, store, view) {
            var status = record.get('Status');
            if (status  === 'Failed') {
                        var baseCSSPrefix = Ext.baseCSSPrefix;
                        metaData.tdCls = baseCSSPrefix + 'grid-cell-special ' + baseCSSPrefix + 'grid-cell-row-checker';
                        return '<div class="' + baseCSSPrefix + 'grid-row-checker">&#160;</div>';
            } else {
                        return '';
            }

        };
        return config;
}

当我希望渲染器显示复选框时,它返回的是复制自的内容,这种方法的唯一区别是我使用的是ext4.2内置的“Ext.selection.CheckboxModel”

雷米乌斯,谢谢你的回复。我遵循了你在链接帖子中写的内容,但我无法让它正常工作。没有显示标题复选框。是因为我使用的是4.2版吗?无论如何,我不想覆盖默认的checkcolumn类,而是希望扩展它并创建自己的类。还有什么建议吗?网格渲染系统在4.2中有很大的不同,所以这可能就是原因。我所能推荐的就是研究代码的工作原理,看看是否可以将其移植到4.2。另外,如果您想将其子类化,只需将第一个参数中的类名称更改为Ext.define并更改小部件名称。感谢您的提示,我将查看4.2代码库以了解它。我成功地添加了带有复选框的标题。您必须更改函数getHeaderCheckboxImage,它返回如下内容:++text+其中text=this.title,title必须在columncheck.Reimius中定义,谢谢您的回复。我遵循了你在链接帖子中写的内容,但我无法让它正常工作。没有显示标题复选框。是因为我使用的是4.2版吗?无论如何,我不想覆盖默认的checkcolumn类,而是希望扩展它并创建自己的类。还有什么建议吗?网格渲染系统在4.2中有很大的不同,所以这可能就是原因。我所能推荐的就是研究代码的工作原理,看看是否可以将其移植到4.2。另外,如果您想将其子类化,只需将第一个参数中的类名称更改为Ext.define并更改小部件名称。感谢您的提示,我将查看4.2代码库以了解它。我成功地添加了带有复选框的标题。您必须更改函数getHeaderCheckboxImage,它返回如下内容:++text+其中text=this.title,title必须在columncheck中定义。