Crossfilter / dc.table 按时间戳排序
Crossfilter / dc.table sorting by Timestamp
我想按时间戳降序对我的 table 进行排序,但在这个字段中我的测试用例是升序的。
我怎样做相反的事情?
我希望我能解释我的问题。
//------------------------table------------------------------------
var TestCaseDim2 = perfData.dimension(function (d) {
return d.TestCase;
});
dc.dataTable('#data-table')
.dimension(TestCaseDim2)
.group(function (d) {
return d.Timestamp.bold().fontcolor("darkblue");
})
.columns([
function (d) { return d.SerialNumber;},
function (d) { return d.Result;},
])
.width(get2ndWindowSize())
.order(d3.descending )
.size(700)
.renderlet(function (table) {
table.selectAll('.dc-table-group').classed('info', true);
});
希望有人能帮助我。
在您的 JSFiddle 示例中,我相信但不确定在您的组中您的测试脚本是按测试用例排序的,因为这是您在数据上使用的维度 table。
真正的问题是,在 dc.js 数据 table 中,您无法分别控制组的顺序和组内的顺序。组内的排序基于维度返回的顺序,组的顺序由组的文本确定。两者都是升序或降序,具体取决于您在 dataTable.order
.
中的设置
那么,我们该怎么办?我建议在要在组内排序的 属性 上定义维度,然后如有必要,通过翻转维度上的 top/bottom 函数来反转维度排序的方向:
var perfData = crossfilter(data);
var testScriptDim = perfData.dimension(function (d) {
return d.testscript;
});
testScriptDim.top = testScriptDim.bottom;
dc.dataTable('#data-table')
.dimension(testScriptDim)
.group(function (d) {
return d.date.bold().fontcolor("darkblue");
})
.columns([
function (d) { return d.testscript; },
function (d) { return d.duration; },
function (d) { return d.clickcount; }
])
.size(100)
.order(d3.descending)
.renderlet(function (table) {
table.selectAll('.dc-table-group').classed('info', true);
});
这是您的 JSFiddle 的更新版本,我认为它可以满足您的需求:https://jsfiddle.net/esjewett/xzrp0ggv/1/
我想按时间戳降序对我的 table 进行排序,但在这个字段中我的测试用例是升序的。
我怎样做相反的事情? 我希望我能解释我的问题。
//------------------------table------------------------------------
var TestCaseDim2 = perfData.dimension(function (d) {
return d.TestCase;
});
dc.dataTable('#data-table')
.dimension(TestCaseDim2)
.group(function (d) {
return d.Timestamp.bold().fontcolor("darkblue");
})
.columns([
function (d) { return d.SerialNumber;},
function (d) { return d.Result;},
])
.width(get2ndWindowSize())
.order(d3.descending )
.size(700)
.renderlet(function (table) {
table.selectAll('.dc-table-group').classed('info', true);
});
希望有人能帮助我。
在您的 JSFiddle 示例中,我相信但不确定在您的组中您的测试脚本是按测试用例排序的,因为这是您在数据上使用的维度 table。
真正的问题是,在 dc.js 数据 table 中,您无法分别控制组的顺序和组内的顺序。组内的排序基于维度返回的顺序,组的顺序由组的文本确定。两者都是升序或降序,具体取决于您在 dataTable.order
.
那么,我们该怎么办?我建议在要在组内排序的 属性 上定义维度,然后如有必要,通过翻转维度上的 top/bottom 函数来反转维度排序的方向:
var perfData = crossfilter(data);
var testScriptDim = perfData.dimension(function (d) {
return d.testscript;
});
testScriptDim.top = testScriptDim.bottom;
dc.dataTable('#data-table')
.dimension(testScriptDim)
.group(function (d) {
return d.date.bold().fontcolor("darkblue");
})
.columns([
function (d) { return d.testscript; },
function (d) { return d.duration; },
function (d) { return d.clickcount; }
])
.size(100)
.order(d3.descending)
.renderlet(function (table) {
table.selectAll('.dc-table-group').classed('info', true);
});
这是您的 JSFiddle 的更新版本,我认为它可以满足您的需求:https://jsfiddle.net/esjewett/xzrp0ggv/1/