我正在使用FlashBuilder4.5 for PHP中的薪资管理系统。我正在使用一个Flex数据管理系统。我有以下几个问题:
当我删除项时,应该从数据网格中删除它(这可以通过从datagrid的数据提供程序中删除项来实现),但问题是当我提交它时-它保存到数据库。我找不到解决这个问题的办法。
什么是Flex 4的好书/教程,重点介绍PHP和Flex企业应用程序开发,并举例说明应用程序开发?
发布于 2011-06-02 17:20:30
这是我在这种情况下所做的。对于我的dataProvider中还没有保存的行(它们有ID=0或其他东西),我只需使用以下内容删除它们:
myArrayCollection.removeItemAt(myArrayCollection.getItemIndex(myDataGrid.selectedItem));这样,任何被删除的行都不会到达后端。
发布于 2013-02-26 13:40:43
我没有使用datagrid (或者ArrayCollection作为dataProvider),所以尽管@Jason的解决方案一般都能工作,但它并不适合我的具体情况。
对于Flex中的数据托管删除方法,我使用item而不是itemID解决了“无法删除未提交项”的问题。Flash的自动生成ActionScript方法和PHP代码使用itemID作为参数,在将记录保存到数据库后才能对数据进行管理删除。在DELETE方法中使用实际的项引用作为param可以删除已提交和未提交的更改。然后,必须修改PHP代码。
我使用服务器端输入,因此修改后的PHP代码(类似于FB自动生成的PHP代码)如下所示:
/**
* Deletes the item corresponding to the passed primary key value from
* the table. Note: NOT using primary key anymore - use item reference.
*
* Add authorization or any logical checks for secure access to your data
*
* @param MessageScheduleItem $item
* @return void
*/
public function delete_messageScheduleItem($item) {
$stmt = mysqli_prepare($this->connection, "DELETE FROM $this->tablename WHERE ID = ?");
$this->throwExceptionOnError();
mysqli_stmt_bind_param($stmt, 'i', $item->ID);
.
.
... etc.然后,Flex代码:
messageScheduleItemService.delete_messageScheduleItem(item);https://stackoverflow.com/questions/6212702
复制相似问题