【发布时间】:2011-02-04 04:47:48
【问题描述】:
首先让我说这是我的第一个 Flex 项目,所以我读了很多书,学到了很多东西,但仍然在努力完成这项工作。
我正在尝试在我的 Flex 移动应用程序中显示 SQLite 数据库中的记录。我有输入表单将数据正确保存到数据库,并且我有一个输出记录的数据网格(所以我可以确认一切看起来都很好)。但是,我的问题是使数据可读。
我希望用户能够从下拉列表或列表中选择一个标识符(即使它只是一个 1 列数据网格),并让标签正确更新以反映该信息。
我的想法是这样设置数据网格:
<mx:DataGrid x="10" y="10" width="100" height="500" id="SiteSelector" dataProvider="{siteData}" includeIn="SiteDetails" change="SiteChoice(event)">
<mx:columns>
<mx:DataGridColumn headerText="Site Name" dataField="SiteName" />
</mx:columns>
</mx:DataGrid>
数据网格显示数据库中没有问题的站点名称。变化函数:
private function SiteChoice(event:ListEvent):void
{
var statement:SQLStatement = new SQLStatement();
statement.sqlConnection = connection;
statement.text = "SELECT * FROM SITES WHERE SITE_ID = ?"
statement.parameters[0] = SiteSelector.selectedItem.SITE_ID;
statement.execute();
siteDetails.source = statement.getResult().data;
}
我也声明了:
[Bindable] private var siteDetails:ArrayCollection = new ArrayCollection();
我的问题是,如何获得一个标签来反映表格中的特定列数据?我相信我将它与 siteDetails 作为数据提供者一起插入,但我如何指定我希望,例如,地址或站点联系人出现在标签中?
<s:Label text="{siteDetails}" id="ExternalIPLBL"/>
上周我一直在大量搜索 Google 和 Adobe Developer Connection/livedocs/cookbooks,但仍未找到可行的解决方案。
【问题讨论】:
-
由于 siteDetails 是一个 ArrayCollection,您的意思是要重复标签,每个实例都显示该 ArrayCollection 中的条目字段吗?
-
我同意@Frank 的回答。此外,您不应该使用 ArrayCollection 作为标签的 dataProvider。您将使用 ArrayCollection 作为列表类型项的数据提供者。获得结果后,单步执行 siteDetails AC,然后根据 siteDetails 值设置标签文本值
标签: sql apache-flex