你需要應用自定義字段渲染器。您需要將一個init()js函數與一個渲染器方法一起添加到您的頁面中。我有我的博客應用自定義渲染的基本過程:
CF8 Ajax Grid: Renderers and Events
基本上,你會打電話給你的init()方法後,電網已初步呈現,通過使用ajaxOnLoad()方法:
<cfset ajaxOnLoad("init") />
在你的init()方法,你會得到電網的引用,它的ColumnModel:
init = function() {
var myGrid = ColdFusion.Grid.getGridObject('myGridID');
var gridCM = myGrid.getColumnModel();
// The rest goes here
}
您還需要您的渲染器方法,可以適用於任何列:
yesNoRenderer = function(value,meta,record,row,column,store) {
if (value === 1){
return "Yes";
} else {
return "No";
}
}
在這之後,你需要渲染應用到您選擇的列:
gridCM.setRenderer(cm.getIndexById('myColumnName'), yesNoRenderer);
的setRenderer方法將列索引(從0開始)以及作爲渲染器應用的函數。 getIndexById()方法應該在這裏工作,但您應該首先測試它,並記住在JavaScript中套管非常重要。
大多數CF Ajax組件在底層使用了Ext 1.1。仔細閱讀關於ColdFusion JavaScript Functions的Adobe文檔,並記住可以使用底層的Ext 1.1 API。
對不起,這裏的無知,但最後一行.. cm.setRenderer ...等 如果是這樣gridCM.setRenderer ..在init函數中創建的Var?而且,我在哪裏放置該行?在init函數裏面?特別是在任何功能之外?在此先感謝,這已經是一個巨大的幫助。 – 2009-05-26 14:21:18