如何在ColdFusion 9 EXTJS Grid列上设置typeAhead = true?

时间:2010-01-03 00:48:31

标签: coldfusion extjs

在CF9上,type =“combobox”的CFGridcolumn将在底层javascript中将“typeAhead”设置为false。 typeAhead是组合框的自动完成效果,您可以在“光”列中看到此处:http://www.extjs.com/deploy/dev/examples/grid/edit-grid.html

我想知道如何使用ColdFusion 9和CFGrid / CFGridColumn以及相关的Coldfusion.Grid函数将此typeAhead功能添加到基于EXTJS的网格中。

感谢您的指导。

1 个答案:

答案 0 :(得分:3)

以下是:

你创建一个看起来像这样的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 on是获取typeAhead的缺失部分:true to work。

相关问题