我是灵活的新手,我可以向任何可以提出建议的人提出一些问题。
我有监视CPU状态的网格,它看起来像这样
CPU | CPU差异
--------------
5.9 | +0.2 ^
4.0 | -0.6 v
12.7 | -1.5 v
上图中的^ , v
代表[s:itemrenderer]
问题是列“CPU dif”无法正常排序,因此我使用sortCompareFunction来解决此问题
public static function compareCPU(typeOne:Object, typeTwo:Object ,grid:Object):int
{
return ObjectUtil.numericCompare(Number(typeOne.cpu), Number(typeTwo.cpu) );
}
public static function compareCPUdif(typeOne:Object, typeTwo:Object ,grid:Object):int
{
return ObjectUtil.numericCompare(Number(typeOne.cpu_dif), Number(typeTwo.cpu_dif) );
}
和
<s:GridColumn headerText="Cpu%" dataField="cpu" sortCompareFunction="compareCPU"/>
<s:GridColumn width="90" headerText="Cpu% Dif" sortCompareFunction="compareCPUdif">
<s:itemRenderer>
<fx:Component>
<s:GridItemRenderer width="100%" height="100%">
<s:HGroup width="100%" height="100%" verticalAlign="middle" horizontalAlign="left">
<s:HGroup width="50%" paddingLeft="5" horizontalAlign="left">
<s:Label text="{data.cpu_dif}"/>
</s:HGroup>
<s:HGroup width="50%" paddingRight="5" horizontalAlign="right">
<mx:Image source="{outerDocument.statusArrow.getItemAt(data.pic)as String}"/>
</s:HGroup>
</s:HGroup>
</s:GridItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:GridColumn>
看起来很奇怪,它只能运行一半,它们只能通过一种方式正确排序(升序排序)
当我再次点击它时,没有响应。
你能解决这个问题吗? 提前致谢
答案 0 :(得分:0)
它可能将'+'和' - '字符视为......好吧。字符而不是数学符号。
获取排序为您提供的对象,将它们自行转换为数字,然后应用numericCompare
。