我在html cfgrid中有一个boolean类型的列。数据以1/0的形式存储在数据库中,并从CF返回。我希望用户看到的是Yes/No而不是1/0。我试过QuerySetCell,但不能让它工作。
表单是可编辑的,当您双击单元格时,将显示复选框并根据需要进行更新。唯一的问题是显示器。
<cfform>
<cfgrid name="blah" format="html" bind="mycfccall" selectmode="edit">
<cfgridcolumn name="bitCol" header="Is it" width="75" type="boolean">
</cfgrid>
</cfform>先谢谢你...
发布于 2009-05-19 19:47:39
您将需要应用自定义字段渲染器。您需要向页面添加一个init() js函数,以及一个渲染器方法。我在我的博客上有应用自定义渲染器的基本过程:
CF8 Ajax Grid: Renderers and Events
基本上,您将通过使用ajaxOnLoad()方法在网格初始呈现后调用init()方法:
<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组件都在幕后使用Ext1.1。请仔细阅读ColdFusion JavaScript Functions上的Adobe文档,并记住您可以访问底层的Ext 1.1 API。
发布于 2010-04-21 19:17:07
我认为在数据库查询中使用Decode会更容易:
Decode(bitCol,1,'Yes','No') bitColhttps://stackoverflow.com/questions/884474
复制相似问题