2012-02-18 54 views
2

我正在使用Flashbuilder 4.6,无法在我的s:DataGrid中进行排序,DataGrid无法正常工作,单击列时什么也不做。任何人都可以提出什么是错的?Flex s:datagrid排序似乎不工作

<?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> 
    <s:DataGrid x="30" y="24" requestedRowCount="4" sortableColumns="true"> 
     <s:columns> 
      <s:ArrayList> 
       <s:GridColumn dataField="dataField1" headerText="Column 1"></s:GridColumn> 
       <s:GridColumn dataField="dataField2" headerText="Column 2"></s:GridColumn> 
       <s:GridColumn dataField="dataField3" headerText="Column 3"></s:GridColumn> 
      </s:ArrayList> 
     </s:columns> 
     <s:typicalItem> 
      <fx:Object dataField1="Sample Data" dataField2="Sample Data" dataField3="Sample Data"></fx:Object> 
     </s:typicalItem> 
     <s:ArrayList> 
      <fx:Object dataField1="4" dataField2="c" dataField3="data1"></fx:Object> 
      <fx:Object dataField1="2" dataField2="d" dataField3="data2"></fx:Object> 
      <fx:Object dataField1="1" dataField2="a" dataField3="data3"></fx:Object> 
      <fx:Object dataField1="3" dataField2="b" dataField3="data4"></fx:Object> 
     </s:ArrayList> 
    </s:DataGrid> 

</s:Application> 

回答

7

这是因为你的dataProvider的,你应该改变ArrayCollection的类型。 ArrayList基本上是ArrayCollection的“打火机”版本,剥离排序和过滤功能,当您单击列标题进行排序时,这些功能会在DataGrid后台使用。

+0

谢谢,非常确切的答案。 – 2012-02-19 01:41:11

+0

感谢您的好信息。 – 2012-02-19 11:03:21

+0

确实有帮助! :) – 2013-08-02 08:07:47