使用 Flex 3 在会话中划分 dataGrid
Posted
技术标签:
【中文标题】使用 Flex 3 在会话中划分 dataGrid【英文标题】:Divide dataGrid in sessions with Flex 3 【发布时间】:2012-09-20 11:48:29 【问题描述】:所以,我想要的是将数据网格分成几部分,如下所示:
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
基本上我想要的是那个。会话是动态的(我不知道每个会话之前有多少寄存器,也不知道会有多少会话,但我可以计算执行时间)。
我还可以将每个会话分成一个单独的 ArrayCollection 我可以将它们全部放入一个 ArrayCollection 我也可以(如有必要)在它们之间放置一个寄存器,如示例所示。例如,“Session 2”是 dataProvider.getItemAt(3) 对象,而 Session 3 是 dataProvider.getItemAt(7)。有可能吗?如果是这样,我应该寻找什么来帮助我解决这个问题? 谢谢
【问题讨论】:
【参考方案1】:您可以考虑将 AdvancedDataGrid 与分层数据一起使用。 More info on that here.
对于您的情况,我认为您需要一个“会话”对象;这可以像这样的对象一样简单:
package com.something.something
import mx.collections.ArrayCollection;
public class SessionObject
public function SessionObject()
public var label :String;
public var children :ArrayCollection
会话对象内的“Children”集合的每个元素都将代表您的一个子行。从概念上讲,它们是这样的对象:
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 >
<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 中创建列数组。
【讨论】:
列是已知的和静态的,动态的是会话数量和每个会话中的记录数量。 那么在我定义的结构中创建数据可能就是答案。以上是关于使用 Flex 3 在会话中划分 dataGrid的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Adobe Flex 中合并 DataGrid/Advanced DataGrid 中的单元格
Flex 4.5 (Hero) s:Datagrid RowCount
如何在 Flex 中控制 Spark Datagrid 的滚动条位置?
如何使用mx Prints DataGrid打印flex spark datagrid?或者是否有其他方法可以在不使用mx Prints DataGrid的情况下实现此目的?