有没有办法在一列中放置一个复选框和2个数字字段?像
这样的东西+-----------------------+-----------------------+ | Column 1 | Column 2 | +-----------------------+-----------------------+ | | CB NF NF | +-----------------------+-----------------------+ | | CB NF NF | +-----------------------+-----------------------+ | | CB NF NF | +-----------------------------------------------+
答案 0 :(得分:3)
“标准”方法涉及使用功能编辑行/列模板以包含带有ids的div,然后将组件呈现为具有renderTo
配置的div。但是,由于您按列而不是按行工作,因此可以采用更简单的方法。
在您的列配置中,使用如下自定义渲染器:
// May not be exact, I just came up with this on the spot
renderer: function(value, metaData, record, rowIdx, colIdx, store, view) {
return [
"<div id='combobox_", rowIdx, "'></div>",
"<div id='numberfield_1_", rowIdx, "'></div>",
"<div id='numberfield_2_", rowIdx, "'></div>"
].join("");
}
现在,此列中的每个单元格都有三个具有唯一ID的div(您可能需要将“rowIdx”替换为其他一些标识方法,例如record.id)。然后由您来创建组件并保持它们呈现。
请注意,每次网格更新时都会调用网格视图的refresh
方法,包括排序,过滤,隐藏列等。因此,您需要注意afterrefresh
事件或其他内容类似并根据需要重新渲染组件。要欺骗渲染的组件重新渲染,请使用myComponent.rendered = false; myComponent.render();
,它应该可以正常工作。
人们编写的插件可能会为您管理此过程的很大一部分,但这是潜在的概念。它不漂亮,但它有效。