我是Flex中的新成员。我想以附加的网格格式显示数据。我发现在DataGrid中显示的最佳方式。但CI列有多个条目,因为其他列会重复。我想避免其他列中的重复数据。附加的截图是excel,我想在Flex中实现相同的格式。我使用Flex 4.5FLEX DataGrid列修改
2
A
回答
2
我看到你想要做什么最好的办法是创造了CLS列自定义项目渲染并将其呈现为一个列表控件。这样,每行中的CLS项目将只占用一行而不是多行。
0
你可以通过下面的代码得到一些想法......你可以使用下面的概念为你的实现建立逻辑。下面的例子是样品根据您的要求无法完成: -
<?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.core.UIComponent;
import mx.events.AdvancedDataGridEvent;
import mx.events.ListEvent;
[Bindable]
private var dpHierarchy:ArrayCollection= new ArrayCollection
([
{name:"Barbara Jennings", address: "Arizona", contact:999970, orders:["1"]},
{name:"Dana Binn", address: "Arizona", contact:9999130, orders:["2"]},
{name:"Joe Smith", address: "California", contact:9992929, orders:["3"]},
{name:"Alice Treu", address: "California", contact:9999230, orders:["4"]}
]);
private function addOrder():void
{
for(var i:int = 0 ; i < dpHierarchy.length; i++)
{
if(dropDownID.selectedItem.name == dpHierarchy[i].name)
{
var itemUpdated:Array = dpHierarchy[i].orders;
itemUpdated.push(orderNumber.text);
dpHierarchy[i].orders = itemUpdated;
dpHierarchy.itemUpdated(dpHierarchy[i]);
break;
}
}
}
]]>
</fx:Script>
<mx:VBox x="30" y="30" width="450" height="400">
<s:HGroup>
<s:Button label="Add Order" click="addOrder()"/>
<s:DropDownList id="dropDownID" dataProvider="{dpHierarchy}" labelField="name" selectedIndex="0"/>
<s:TextInput id="orderNumber" width="100"/>
</s:HGroup>
<mx:AdvancedDataGrid id="myADG"
dataProvider="{dpHierarchy}"
variableRowHeight="true" wordWrap="true">
<mx:columns>
<mx:AdvancedDataGridColumn dataField="name" headerText="Name"/>
<mx:AdvancedDataGridColumn dataField="address" headerText="Address"/>
<mx:AdvancedDataGridColumn dataField="contact" headerText="Contact"/>
<mx:AdvancedDataGridColumn dataField="orders" headerText="Orders" itemRenderer="OrderItemRenderer"/>
</mx:columns>
</mx:AdvancedDataGrid>
</mx:VBox>
</s:Application>
项目Reenderer名称: - OrderItemRenderer
<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true" width="90%" height="90%">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
private var initDG:ArrayCollection = new ArrayCollection();
override public function set data(value:Object):void
{
super.data = value;
initDG = new ArrayCollection(value.orders)
}
]]>
</fx:Script>
<mx:DataGrid id="dataGrid" dataProvider="{initDG}" headerHeight="0" rowCount="{initDG.length}"/>
</s:MXAdvancedDataGridItemRenderer>
相关问题
- 1. 动态修改列DataGrid
- 2. Flex DataGrid列宽
- 3. flex datagrid列拖动
- 4. Flex DataGrid中的Flex Datagrid
- 5. Flex DataGrid列表高亮
- 6. Flex中的Datagrid的NumberFormat列
- 7. Flex 3 DataGrid列宽问题
- 8. WPF - 修改MahappsMetro DataGrid风格
- 9. Flex DataGrid查询
- 10. Flex Datagrid ItemRenderer
- 11. Flex Datagrid查询
- 12. Flex Datagrid事件
- 13. Flex Advance datagrid
- 14. flex datagrid问题
- 15. Flex Datagrid排序
- 16. Flex Vertical Datagrid
- 17. flex分页datagrid
- 18. Flex 4 Datagrid Header
- 19. Flex - Datagrid ItemRenderer
- 20. Flex更改DataGrid突出显示颜色
- 21. 动态更改FLEX中的Datagrid列的宽度
- 22. 添加拖放到flex中的datagrid列
- 23. Flex Spark Datagrid固定列,水平滚动
- 24. Flex dataGrid列缺少标题文本
- 25. Flex Datagrid列对齐的数字
- 26. 在Flex DataGrid中显示复选框列
- 27. 具有行号列的Flex DataGrid
- 28. 在datagrid中创建“总计”列flex
- 29. FLEX DataGrid和XML列表内容
- 30. 如何为两列使用flex datagrid lockedcolumncount?
这是一个良好的通话,数据只需要设置,这样的属性之一对于数据提供者中的数据元素并随后传递给渲染器应包含已被其他列分组以获得列表的CI列表/数组 – shaunhusain
感谢Dom,但我的目标是以附加的快照格式实现。我附上的快照在不包括在内。让我重新说明我的问题。我想显示'姓名','地址','联系人'和'订单'。现在,一个人可以放置N个订单,以便它们将成为多个条目。我想以网格格式显示所有细节,同时我希望避免'姓名','地址','联系人'的重复行。 –
我的例子仍然可以正常工作,但在将数据放入数据网格之前,您需要做更多的工作。从dataProvider中,将第一个元素添加到arrayCollection。然后在dataProvider的后续记录上,检查名称是否已经存在于你的arrayCollection中。如果是这样,只需将它们的顺序添加到您的主arrayCollection内部的orders arrayCollection。这将导致包含人员,他们的地址和联系人的arrayCollection,每个人将有一个arrayCollection和他们的orderNumbers。希望这是有道理的。 – Dom