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