ColdFusion:根据条件突出显示CFGrid中的行?

ColdFusion:根据条件突出显示CFGrid中的行?,coldfusion,cfgrid,Coldfusion,Cfgrid,我正在Coldfusion中构建一个应用程序,基本上它是一个跟踪会员资格到期的模块。我正在建立一个所有成员的索引,我想使用cfgrid 有没有办法具体说明,在会员资格到期后的x天内,行将突出显示 谢谢 要做到这一点,您可能需要自己编写一些JavaScript。首先通过ColdFusion.Grid.getGridObject获取ExtJS对象,然后查看ExtJS文档(http://dev.sencha.com/deploy/dev/docs/)看看能做些什么 另一种选择是在ColdFusion中

我正在Coldfusion中构建一个应用程序,基本上它是一个跟踪会员资格到期的模块。我正在建立一个所有成员的索引,我想使用cfgrid

有没有办法具体说明,在会员资格到期后的x天内,行将突出显示


谢谢

要做到这一点,您可能需要自己编写一些JavaScript。首先通过ColdFusion.Grid.getGridObject获取ExtJS对象,然后查看ExtJS文档(http://dev.sencha.com/deploy/dev/docs/)看看能做些什么

另一种选择是在ColdFusion中进行计算,并向网格中添加另一列。

<cfajaximport/>
<html>

<head>
<script>

myf = function(data,cellmd,record,row,col,store) {
    // hard code a date to check against "13 Jan 2011"
    // note 0 based month index
    var today = new Date(2011,0,13);
    if(data < today) {
        //before displaying format the date
        var curr_date = data.getDate();
        var curr_month = data.getMonth();
        //javascript has month as a 0 based index so add one
        curr_month++;
        var curr_year = data.getFullYear();
        return "<span style='color:red;font-weight:bold;'>" + curr_date + "-" + curr_month + "-" + curr_year + "</span>";
    }
    else {
        //before displaying format the date
        var curr_date = data.getDate();
        var curr_month = data.getMonth();
        //javascript has month as a 0 based index so add one
        curr_month++;
        var curr_year = data.getFullYear();
        return curr_date + "-" + curr_month + "-" + curr_year;
    }
}
testgrid = function() {
    mygrid = ColdFusion.Grid.getGridObject('data');
    cm = mygrid.getColumnModel();
    // render the first column (0 based index) using the myf function above 
    cm.setRenderer(0,myf);
    mygrid.reconfigure(mygrid.getDataSource(),cm);
}
</script>
</head>

<body>

<!--- create a hard coded query for testing --->
<cfset data = queryNew("expiryDate,member")>
<cfloop from=1 to=31 index="i">
    <cfset expiryDate = createDate(2011,1,i)>
    <cfset member = "Member #i#">
    <cfset queryAddRow(data)>
    <cfset querySetCell(data, "expiryDate", expiryDate, i)>
    <cfset querySetCell(data, "member", member, i)>
</cfloop>

<cfform name="test">
<cfgrid autowidth="true" name="data" format="html" query="data" width="600">
   <cfgridcolumn name="expiryDate" header="Expiry Date">
   <cfgridcolumn name="member" header="Member">
</cfgrid>
</cfform>

<cfset ajaxOnLoad("testgrid")>
</body>
</html>

myf=函数(数据、单元格、记录、行、列、存储){
//硬编码日期以对照“2011年1月13日”
//注0:基于月份指数
var今日=新日期(2011,0,13);
如果(数据<今天){
//在显示日期格式之前
var curr_date=data.getDate();
var curr_month=data.getMonth();
//javascript将月份作为基于0的索引,因此添加一个
当前月份++;
var curr_year=data.getFullYear();
返回“+当前日期+”-“+当前月份+”-“+当前年份+”;
}
否则{
//在显示日期格式之前
var curr_date=data.getDate();
var curr_month=data.getMonth();
//javascript将月份作为基于0的索引,因此添加一个
当前月份++;
var curr_year=data.getFullYear();
返回当前日期+“-”+当前月份+“-”+当前年份;
}
}
testgrid=function(){
mygrid=ColdFusion.Grid.getGridObject('data');
cm=mygrid.getColumnModel();
//使用上面的myf函数呈现第一列(基于0的索引)
cm.setRenderer(0,myf);
重新配置(mygrid.getDataSource(),cm);
}