在 CF9 上,类型为“combobox”的 CFGridcolumn 将在底层 javascript 中将“typeAhead”设置为 false。 typeAhead 是组合框的自动完成效果,您可以在此处的“Light”列中看到:http://www.extjs.com/deploy/dev/examples/grid/edit-grid.html
我想知道如何使用 ColdFusion 9 和 CFGrid/CFGridColumn 以及相关的 Coldfusion.Grid 函数将此 typeAhead 功能添加到基于 EXTJS 的网格中。
感谢指导。
最佳答案
方法如下:
您创建一个如下所示的 js 函数:
function formatGrid(){
var grid = ColdFusion.Grid.getGridObject("configgrid");
var colModel = grid.getColumnModel();
colModel.setRenderer(1,function(value, p, record, rowIndex, colIndex){
var val = "";
var editor = colModel.getCellEditor(colIndex,rowIndex);
Ext.apply(editor.field,{typeAhead:true,editable:true});
return value;
});
}
在 setRenderer 调用中,“1”指的是您正在修改的列的从零开始的索引。如果您有多个组合框列,您可以轻松地提取此函数以使其更加通用并接受列模型和列索引。
然后,要调用该函数,在CF8上您可以使用
<cfset ajaxOnLoad("formatGrid")>
在 CF9 上,您可以使用 CFGrid 标记的 onload 属性,并将其设置为“formatGrid”(或任何您希望调用函数的内容)
无论如何,在观看 Cutter 关于 CF9/Ajax 的演示后,我终于看到了曙光:http://experts.na3.acrobat.com/p62805180/
这为我提供了将渲染器应用于柱模型所需的信息。然后,我在源代码中查找了 ColdFusion 为列模型创建的内容,我看到下拉字段为“editable:false”。打开 editable:true 是让 typeAhead:true 正常工作所缺少的部分。
关于coldfusion - 如何在 ColdFusion 9 EXTJS 网格列上设置 typeAhead=true?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1993515/