这里有一个很好的解释,希望有人耐心通过
阅读我正在Flex 4中构建一个处理订购系统的应用程序。我有一个小的mySql数据库,我在php中编写了一些服务来处理数据库。
基本上逻辑是这样的:
我有客户,产品,产品组,订单和订单内容的表格
我对产品,订单和客户的CRUD管理没有任何问题,客户将填写的订单提交令我头疼:
我想要的是显示按组排序的dataGrids中的产品,这些产品将通过php-services填充Flex数据管理,而且本身没有问题。但我还想在数据网格中添加一个额外的列,用户可以用他希望订购的产品来填写。理论上,该列将通过php服务绑定到db表“orderContent”。
问题是您需要首先在数据库中创建一个数据可以绑定到的新订单(orderContent链接到数据库中的订单)。
每次用户进入页面查看产品时,我都不想创建新订单,而是在按下按钮时创建订单,然后从页面上的datagrids中获取所有内容并提交它进入数据库。
我的想法是创建一个单独的单列数据网格,将其排列在包含产品的数据网格旁边,在该数据网格中,用户可以输入他想订购的产品数量。
我创建了一个valueObject,其中包含订单所需的数据:
代码:
package valueObjects
{
public class OrderAmount
{
public var productId:int;
public var productAmount:int;
public var productPrice:Number;
public function orderAmount()
{
}
}
}
我的想法是使用服务从某个组获取所有产品,用数据填充ArrayCollection,然后将该ArrayCollection中的每个对象传输到上面的Value Object的实例,将value对象添加到另一个ArrayCollection,将被用作单列数据网格的dataProvider(我只会显示最初设置为零的数量,但在将其传输到数据库时使用其他数据)
我尝试使用自动生成的serviceResults中的结果来检索datagrid的产品并放入一个传递valueobjects的resultHandler,但这似乎不起作用。
基本上我的问题是:我接近这件事是完全错误的,还是有办法让我按照我的计划工作?
我是否需要创建一个全新的服务请求来获取产品ID:s和价格来填充单列数据网格。
如果有帮助,我会发布一些代码。
谢谢你,如果你读到这一点。
答案 0 :(得分:1)
通过创建一个Value Object类来保存网格中每一行所需的所有信息以及从返回组中所有产品的php服务解决它,我循环遍历结果并将所需数据传输到我的Value Object中
然后我将每个Value Object添加到一个ArrayCollection中,并将其作为dataGrid的dataProvider。
无需使用两个网格。当你将datagrid数据看作是一个ArrayCollection而忘记了它在屏幕上的直观呈现时,我忘记了逻辑事物是如何得到的。
加入一些物品,整件事情很漂亮!