【问题标题】:In Flash Builder, how do I make a <s:List> dataprovider="certain part of an Array"?在 Flash Builder 中,我如何创建 <s:List> dataprovider="certain part of an Array"?
【发布时间】:2011-03-14 23:47:44
【问题描述】:

我有一个列表,我有一个 ArrayCollection。

ArrayCollection 类似于:
&lt;mx:ArrayCollection id="arrColl"&gt;
&lt;mx:source&gt;
&lt;mx:Array&gt;
&lt;mx:Object label="Student A" score="85,36,43,67,54,47" /&gt;
&lt;mx:Object label="Student B" score="85,36,43,67,54,47" /&gt;
&lt;mx:Object label="Student C" score="85,36,43,67,54,47" /&gt;
@987654327 @
&lt;/mx:source&gt;
&lt;/mx:ArrayCollection&gt;

我需要列表只显示学生的分数。

类似:

&lt;s:List dataprovider="arrColl[Student A]"/&gt;
或:
&lt;s:List dataprovider="arrColl.Student A."/&gt;

【问题讨论】:

    标签: xml apache-flex actionscript


    【解决方案1】:

    问题是列表控件不会拾取这个“34,65,36,87,12”变量并将其转换为 IList 列表。

    我想通了,我首先必须这样做: studentAArray = new ArrayCollection(arrColl.score.split(","));然后使用 studentAArray 作为 List 数据提供者。

    【讨论】:

      【解决方案2】:

      不要对列表做任何事情来实现这一点。您想对 ArrayCollection 应用过滤器。该列表将立即拿起过滤器,并从视图中删除无效项目。

      像这样设置dataProvider:

      <s:List dataprovider="arrColl"/>
      

      然后创建一个filterFunction,如下所示:

      public function StudentAFilter(item:Object):void{
        if(item['label'] = "Student A"){
         return true;
        }
        return false;
      }
      

      在你的代码的某个地方,做这样的事情:

      arrColl.filterFunction = StudentAFilter;
      arrColl.refresh()
      

      上面的代码通常与按钮单击或下拉列表的更改处理程序有关;取决于您希望用户如何过滤数据。

      【讨论】:

      • 问题是列表控件不会拾取这个“34,65,36,87,12”变量并把它变成一个IList List。
      • 我想通了,我首先必须这样做: studentAArray = new ArrayCollection(arrColl.score.split(","));然后使用 studentAArray 作为 List 数据提供者。
      • @Nathan Johnson 我没有意识到您想要获取“Score”变量并将其用作数据提供者。如果可能,请避免使用逗号分隔的列表。我想知道是什么在以这种方式填充您的数据。
      • 如果不是逗号分隔列表,我将如何将该值存储在数据库中?
      • @Nathan Johnson 在一个单独的表中链接到带有外键的主表。您将有一个学生表(StudentID、StudentName)和一个分数表(ScoreID、Score、StudentID)。您可能会受益于阅读关系数据库理论,特别是范式。将数据以逗号分隔的列表形式存储在数据库中总是让我感到畏缩。
      猜你喜欢
      • 1970-01-01
      • 2022-12-19
      • 2022-12-01
      • 1970-01-01
      • 2015-03-02
      • 2023-02-12
      • 2014-05-05
      • 2022-12-01
      • 2012-09-15
      相关资源
      最近更新 更多