Actionscript 3 将特定的Datagrid行始终放在末尾-也包括排序
我被困在以下问题上: 我有一个包含10项的Actionscript 3 将特定的Datagrid行始终放在末尾-也包括排序,actionscript-3,apache-flex,datagrid,Actionscript 3,Apache Flex,Datagrid,我被困在以下问题上: 我有一个包含10项的datagrid。。。我还添加了一个额外的行(第11行),其中显示了prevouis字段的总数。。。但是我总是想把最后一行(总数)放在数据网格的最后一行(所以总是放在第11位) 这意味着,当datagrid按列排序时,最后一行的位置也会根据datafield中的值发生变化。有没有简单明了的方法防止它与其他列一起排序,从而使包含总计的列始终排在最后?或者,我最好使用什么方法 谢谢你的帮助
datagrid
。。。我还添加了一个额外的行(第11行),其中显示了prevouis字段的总数。。。但是我总是想把最后一行(总数)放在数据网格的最后一行(所以总是放在第11位)
这意味着,当datagrid按列排序时,最后一行的位置也会根据datafield中的值发生变化。有没有简单明了的方法防止它与其他列一起排序,从而使包含总计的列始终排在最后?或者,我最好使用什么方法
谢谢你的帮助在这个顺序中,我会考虑几个选项。
请查找下面的代码希望这可能对您有所帮助,我尝试了一些变通方法来实现您所寻找的目标,我不确定此代码是否可行:-
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
[Bindable]
private var dpHierarchy:ArrayCollection= new ArrayCollection([
{name:"A", region: "Arizona", number:1},
{name:"B", region: "Arizona", number:2},
{name:"C", region: "California", number:3},
{name:"D", region: "California", number:4}
]);
private function creationComp():void
{
var totalValue:int = 0;
for(var i:int=0; i<dpHierarchy.length; i++)
{
totalValue = totalValue + dpHierarchy[i].number;
}
var obj:Object = new Object();
obj.name = "Total";
obj.region = "==";
obj.number = totalValue;
dpHierarchy.addItem(obj)
myADG.dataProvider = dpHierarchy;
}
private function sortHandler(obj1:Object, obj2:Object):int
{
var lastObj:Object = dpHierarchy.getItemAt(dpHierarchy.length-1);
if(lastObj.number == obj1.number || lastObj.number == obj2.number)
return 0;
if(obj1.number < obj2.number) {
return -1;
} else if(obj1 == obj2) {
return 0;
}
return 1;
}
]]>
</fx:Script>
<mx:AdvancedDataGrid id="myADG" x="50" y="50"
width="400" height="300"
variableRowHeight="true" creationComplete="creationComp()">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="name" headerText="Name" sortCompareFunction="sortHandler"/>
<mx:AdvancedDataGridColumn dataField="region" headerText="Region" sortCompareFunction="sortHandler"/>
<mx:AdvancedDataGridColumn dataField="number" headerText="Number" sortCompareFunction="sortHandler"/>
</mx:columns>
</mx:AdvancedDataGrid>
</s:Application>
我想您可以编写一个自定义比较函数,它总是将某个值放在最后,然后将其分配给GridColumn\sortcomparencation
。谢谢您的代码!这真的为最佳方法提供了一个好主意!