2010-01-03 26 views
2

在CF9上,type =「combobox」的CFGrid列將在底層JavaScript中將「typeAhead」設置爲false。預輸入是一個組合框,你可以在這裏看到,在「光」列中的自動完成效果:http://www.extjs.com/deploy/dev/examples/grid/edit-grid.html如何在ColdFusion 9 EXTJS Grid列上設置typeAhead = true?

我想知道如何添加此功能,預輸入到使用ColdFusion 9基於EXTJS網和CFGrid/CFGridColumn以及相關的Coldfusion.Grid函數。

感謝您的指導。

+1

FYI:我已經添加了這個增強請求,要求對CFGRIDCOLUMN直通配置選項:http://cfbugs.adobe.com/cfbugreport/flexbugui/cfbugtracker/main.html#bugId=81416 – 2010-01-03 02:33:03

回答

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」(或任何你想調用你的函數)

對於它的價值,我終於看到了看刀對CF9 /阿賈克斯這裏介紹後光:http://experts.na3.acrobat.com/p62805180/

這給了我什麼,我需要得到應用於列模型的渲染器。然後,我查看了ColdFusion爲列模型創建的內容,並在下拉字段中看到了「editable:false」。轉向可編輯:真正的是獲得typeAhead的缺失部分:真正的工作。

+0

@Marc - 大小費!感謝您發佈它。 – Leigh 2010-01-05 17:34:18