我有一个包含日期和组合列的网格面板
但是我不想点击来显示我的组合。我想在没有点击的情况下显示我的组合,而不是像这样隐藏在单元格中
和date列相同,如下所示
我想改成clicksToEdit: 0
,但失败了
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
})
]
该怎么做,谢谢
发布于 2013-07-18 17:49:55
组合框或日期选择器仅在您单击单元格时注入,它们在您单击之前根本不存在于网格中。更改单元格外观的方法是使用列上的渲染器。这样你就可以添加一个假的触发器盒作为背景图像或者类似的东西。
作为对你的评论的回应,你可以这样做:
{
xtype: 'gridcolumn',
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
metaData.tdCls = 'fake-combo';
return value;
},
text: 'MyColumn8',
editor: {
xtype: 'combobox',
store: ...
}
}
研究所有渲染器选项的docs。您可以指定不同的类和DomHelper将使用的属性。css类可以有一个背景图像,但您必须在这里进行实验。要获得与您想要做的事情一致的布局并非易事,但您可以完全访问呈现到单元格中的div。一定要用Firebug或Chrome Dev工具检查结果,它会告诉你到底发生了什么。
虽然你可以截取一个组合框,并将其设置为背景图像。但最好不要尝试在渲染器中创建组合框,这不是它的工作方式。每一行都有一个真正的组合框是自定义的,如果你有很多行,可能会影响性能。
发布于 2013-07-19 13:15:26
在4.2x或更低版本中实现这一点的唯一方法是使用自定义组件,如Skirtle的comonent column http://skirtlesden.com/ux/component-column该列类型允许您将任意组件插入到单元格中。
即将发布的ExtJS将有一个叫做Gadget Grid的东西,它将允许类似的功能。
发布于 2013-10-10 19:16:23
var grid = Ext.create('Ext.grid.Panel', {
store: store,
columns: [{
header: 'Category',
dataIndex: 'CategoryName',
editor: {
xtype: 'combobox',
store: 'categoryStore',
displayField: 'CategoryName',
valueField: 'CategoryID'
}
}],
width: 450,
renderTo: Ext.getElementById('hede')
});
https://stackoverflow.com/questions/17719842
复制相似问题