从列值的总和中获取百分比
Get percentage from sum of column values
在下面的示例中,我有一个带有 widgetcolumn 的网格,其中 widgetcolumn 占另一列总值的百分比:
FIDDLE: https://fiddle.sencha.com/#view/editor&fiddle/1uh5
但是,我无法打印小部件列。
我需要在 precent 列中获得完全相同的百分比值。
有没有关于如何在没有数据索引配置和客户端的情况下执行此操作的想法?
你能解释一下为什么你不想使用 dataIndex 配置吗?
我找到了解决方法,但这是一个丑陋的解决方案。我不建议在生产环境中使用它。这是fiddle:https://fiddle.sencha.com/#view/editor&fiddle/1uhg
简而言之,您需要计算所有值的总和并将其保存在渲染器之外。在每个渲染中,您计算百分比并根据需要设置格式。
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
var me = this;
if (me.sum === 0) {
store.getRange().forEach(function(rec) {
me.sum += rec.get('value');
} );
}
return Ext.util.Format.round(100*record.get('value')/me.sum, 0);
}
在下面的示例中,我有一个带有 widgetcolumn 的网格,其中 widgetcolumn 占另一列总值的百分比:
FIDDLE: https://fiddle.sencha.com/#view/editor&fiddle/1uh5
但是,我无法打印小部件列。
我需要在 precent 列中获得完全相同的百分比值。
有没有关于如何在没有数据索引配置和客户端的情况下执行此操作的想法?
你能解释一下为什么你不想使用 dataIndex 配置吗?
我找到了解决方法,但这是一个丑陋的解决方案。我不建议在生产环境中使用它。这是fiddle:https://fiddle.sencha.com/#view/editor&fiddle/1uhg
简而言之,您需要计算所有值的总和并将其保存在渲染器之外。在每个渲染中,您计算百分比并根据需要设置格式。
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
var me = this;
if (me.sum === 0) {
store.getRange().forEach(function(rec) {
me.sum += rec.get('value');
} );
}
return Ext.util.Format.round(100*record.get('value')/me.sum, 0);
}