我想在拉力赛网格中添加一个带复选框的列(类似“选择默认值”)。使用'checkcolumn'xtype看起来应该非常简单。但这需要你链接一些额外的extjs样式,我不知道如何在Rally extjs框架中做到这一点:
Extjs 4 checkcolumn not visible
以下是ext-js中此类列的示例:http://dev.sencha.com/deploy/ext-3.4.0/examples/grid/edit-grid.html
有没有办法用Rally网格做到这一点?
我最终使用了基于下面的anwser的快速而肮脏的解决方案:
{text: 'Default', dataIndex:'selected', align: 'center', width: 50, renderer: function(value, style, item, rowIndex) {
return "<input type='radio' name='primaryIndex' alt='"+ rowIndex + "' " + (value ? "checked='checked'" : "") + ">";
}},
和
checkRadioClick: function(event) {
var button = event.getTarget('input[type="radio"]');
if (button) {
...
答案 0 :(得分:1)
目前,Ext的网格(Rally网格扩展)不支持复选框列。最接近的东西是布尔列:
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.column.Boolean
这是因为网格要求您必须单击一个单元格才能启动编辑,并且可以立即编辑复选框列而不执行该操作。
考虑到这一点,我认为您应该能够通过在列配置中为该列指定渲染器来渲染复选框列。虽然值不会被提交到商店中的基础记录(因为没有触发实际编辑),但是当它们改变时将值从网格中取回可能有点挑战性。(/ p>
此处还有一位用户提交了CheckColumn,您可以使用或至少作为示例开始使用:
http://docs.sencha.com/ext-js/4-1/source/CheckColumn.html#Ext-ux-CheckColumn
答案 1 :(得分:0)
也许这是一个较新的预览版本的新功能?我这样做了:
Ext.create( 'Rally.ui.grid.Grid', {
selType: 'checkboxmodel',
selModel: {
injectCheckbox: 1,
mode: 'SIMPLE',
listeners: {
selectionchange: function( model, selected ) {
// do stuff
},
scope: this
}
}