Actionscript 3 使用Flex 3在会话中划分dataGrid
所以,我想把一个数据网格分成几个部分,如下所示:Actionscript 3 使用Flex 3在会话中划分dataGrid,actionscript-3,apache-flex,datagrid,actionscript,flex3,Actionscript 3,Apache Flex,Datagrid,Actionscript,Flex3,所以,我想把一个数据网格分成几个部分,如下所示: Column 1 Column 2 Column 3 Column N data1_r1 data2_r1 data3_r1 data4_r1 data1_r2 data2_r2 data3_r2 data4_r2 data1_r3 data2_r3 data3_r3 data4_r3 Session 2 data1_r5
Column 1 Column 2 Column 3 Column N
data1_r1 data2_r1 data3_r1 data4_r1
data1_r2 data2_r2 data3_r2 data4_r2
data1_r3 data2_r3 data3_r3 data4_r3
Session 2
data1_r5 data2_r5 data3_r5 data4_r5
data1_r6 data2_r6 data3_r6 data4_r6
data1_r7 data2_r7 data3_r7 data4_r7
Session 3
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionObject
{
public function SessionObject()
{
}
public var label :String;
public var children :ArrayCollection
}
}
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionData
{
public function SessionData()
{
}
public var column1 :String;
public var column2 :String;
public var column3 :String;
public var column4 :String;
}
}
<mx:AdvancedDataGrid width="100%" height="100%">
<mx:dataProvider>
<mx:HierarchicalData source="{dpHierarchy}"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="label"/>
<mx:AdvancedDataGridColumn dataField="column1 "/>
<mx:AdvancedDataGridColumn dataField="column2" />
<mx:AdvancedDataGridColumn dataField="column3"/>
<mx:AdvancedDataGridColumn dataField="column4"/>
</mx:columns>
</mx:AdvancedDataGrid>
基本上我想要的就是这个。会话是动态的(我不知道每个会话之前有多少个寄存器,也不知道将有多少个会话,但我可以计算执行时间)
- 我还可以将每个会话划分为一个单独的ArrayCollection
- 我可以把它们都放在一个数组集合中
- 我还可以(如果必要的话)在它们之间放置一个寄存器,如示例所示。例如,就像“会话2”是dataProvider.getItemAt(3)对象,而会话3是dataProvider.getItemAt(7)
谢谢你可以考虑使用AdvaseDATAGRID和分层数据… 对于您的情况,我认为您需要一个“会话”对象;就像这样的物体一样简单:
Column 1 Column 2 Column 3 Column N
data1_r1 data2_r1 data3_r1 data4_r1
data1_r2 data2_r2 data3_r2 data4_r2
data1_r3 data2_r3 data3_r3 data4_r3
Session 2
data1_r5 data2_r5 data3_r5 data4_r5
data1_r6 data2_r6 data3_r6 data4_r6
data1_r7 data2_r7 data3_r7 data4_r7
Session 3
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionObject
{
public function SessionObject()
{
}
public var label :String;
public var children :ArrayCollection
}
}
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionData
{
public function SessionData()
{
}
public var column1 :String;
public var column2 :String;
public var column3 :String;
public var column4 :String;
}
}
<mx:AdvancedDataGrid width="100%" height="100%">
<mx:dataProvider>
<mx:HierarchicalData source="{dpHierarchy}"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="label"/>
<mx:AdvancedDataGridColumn dataField="column1 "/>
<mx:AdvancedDataGridColumn dataField="column2" />
<mx:AdvancedDataGridColumn dataField="column3"/>
<mx:AdvancedDataGridColumn dataField="column4"/>
</mx:columns>
</mx:AdvancedDataGrid>
会话对象中“Children”集合的每个元素都代表一个子行。从概念上讲,它们应该是这样一个对象:
Column 1 Column 2 Column 3 Column N
data1_r1 data2_r1 data3_r1 data4_r1
data1_r2 data2_r2 data3_r2 data4_r2
data1_r3 data2_r3 data3_r3 data4_r3
Session 2
data1_r5 data2_r5 data3_r5 data4_r5
data1_r6 data2_r6 data3_r6 data4_r6
data1_r7 data2_r7 data3_r7 data4_r7
Session 3
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionObject
{
public function SessionObject()
{
}
public var label :String;
public var children :ArrayCollection
}
}
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionData
{
public function SessionData()
{
}
public var column1 :String;
public var column2 :String;
public var column3 :String;
public var column4 :String;
}
}
<mx:AdvancedDataGrid width="100%" height="100%">
<mx:dataProvider>
<mx:HierarchicalData source="{dpHierarchy}"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="label"/>
<mx:AdvancedDataGridColumn dataField="column1 "/>
<mx:AdvancedDataGridColumn dataField="column2" />
<mx:AdvancedDataGridColumn dataField="column3"/>
<mx:AdvancedDataGridColumn dataField="column4"/>
</mx:columns>
</mx:AdvancedDataGrid>
然后像这样显示它:
Column 1 Column 2 Column 3 Column N
data1_r1 data2_r1 data3_r1 data4_r1
data1_r2 data2_r2 data3_r2 data4_r2
data1_r3 data2_r3 data3_r3 data4_r3
Session 2
data1_r5 data2_r5 data3_r5 data4_r5
data1_r6 data2_r6 data3_r6 data4_r6
data1_r7 data2_r7 data3_r7 data4_r7
Session 3
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionObject
{
public function SessionObject()
{
}
public var label :String;
public var children :ArrayCollection
}
}
package com.something.something
{
import mx.collections.ArrayCollection;
public class SessionData
{
public function SessionData()
{
}
public var column1 :String;
public var column2 :String;
public var column3 :String;
public var column4 :String;
}
}
<mx:AdvancedDataGrid width="100%" height="100%">
<mx:dataProvider>
<mx:HierarchicalData source="{dpHierarchy}"/>
</mx:dataProvider>
<mx:columns>
<mx:AdvancedDataGridColumn dataField="label"/>
<mx:AdvancedDataGridColumn dataField="column1 "/>
<mx:AdvancedDataGridColumn dataField="column2" />
<mx:AdvancedDataGridColumn dataField="column3"/>
<mx:AdvancedDataGridColumn dataField="column4"/>
</mx:columns>
</mx:AdvancedDataGrid>
如果在编译时确实有未知数量的列,事情会变得更加困难;但如果需要,您可以在运行时在ActionScript“动态”中创建列数组。列是已知的和静态的,动态的是会话量和每个会话中的记录量。然后在我定义的结构中创建数据可能就是答案。