1

アプリケーションに、フィールドに日付を表​​示するグリッドがあります。その日が先週の場合、フィールドを太字で表示したいと思います。しかし、2行で目的の出力が表示されます。自分の状態のどこが悪いのか理解できません。誰でもこれについて私を助けてくれますか? ここに私のコードがあります:

{
            text: 'Start',  
            dataIndex: 'weekstart',
            flex: 1,
            renderer: function(value, metaData){
                var day = new Date(value) - 0,
                lastDay = Ext.Date.getLastDateOfMonth(value)-0,
                lastWeek = lastDay - 7;
                console.log('day >>> '+day,'lastDay >>> '+ lastDay, 'lastWeek >>> '+lastWeek);
                    return day >= lastWeek ? '<b>' + Ext.Date.format(value, 'M d, Y') + '</b>' : Ext.Date.format(value, 'M d, Y') ;
            }
        }
4

2 に答える 2

3

dayとはタイムスタンプです。lastDayこれを取得するには、タイムスタンプをlastWeek:で使用する必要がありますlastWeek = lastDay - 7*24*3600*1000

とにかく、getRowClass値をフォーマットするために使用する方が良いです。グリッド構成で指定してみてくださいviewConfig

viewConfig: {
    getRowClass: function(record, rowIndex, rowParams, store){
        var value = record.get('lastChange'),
            day = value.getDate(),
            lastDay = Ext.Date.getDaysInMonth(value),
            lastWeek = lastDay - 6;
        return day >= lastWeek ? 'last-week' : '';
    }
}

列定義でクラス追加クラスを指定するtdCls: 'date-column'と、css で列をフォーマットできます。

.last-week .date-column {
    font-weight: bold;
}​

作業サンプル: http://jsfiddle.net/36n4m/1/

于 2012-12-23T12:39:18.650 に答える
0

こんにちは、以下のように完了しました:

 {
                text: 'Start',  
                dataIndex: 'weekstart',
                width: 84,
                renderer: function(value, metaData, record, row, col, store, gridView){
                    var day = value.getDate(),
                    lastDay = Ext.Date.getDaysInMonth(value),
                    lastWeek = lastDay - 6;
//                    console.log( 'row >>> '+ row,'   day >>> '+ day,'   lastDay >>> '+ lastDay, '   lastWeek >>> '+ lastWeek );
                        return day >= lastWeek ? '<b>' + Ext.Date.format(value, 'M d, Y') + '</b>' : Ext.Date.format(value, 'M d, Y') ;
                }
            }
于 2012-12-23T08:03:31.580 に答える