coldfusion - 如何在 ColdFusion 9 EXTJS 网格列上设置 typeAhead=true?

标签 coldfusion extjs

在 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/

相关文章:

javascript - 防止制表符进入字段

extjs - 如何禁用 ExtJS 网格中的控件?

extjs - PhpStorm/WebStorm 支持 ExtJS 的配置

html - 十六进制颜色代码倍数 #

java - ColdFusion 8 读取大型 Excel 文件

Coldfusion - 添加列表参数未正确插入值

javascript - ExtJS arrowHandler 需要引用它所属的 splitbutton

javascript - Ext JS 组合。过滤时保持扩展

javascript - 清除文本字段

coldfusion - 可以在 application.cfc 中创建无作用域的全局吗?