2013-06-23 4 views
0

Я использую локальный XML-файл. Когда я удаляю элемент в веб-браузере, он удаляется, но файл xml не изменяется. Почему это добавление? Вот мой xml-файл;Удалить, добавить и сохранить элемент в xml из DataGrid

<?xml version="1.0" encoding="utf-8" ?> 
<products> 
    <product> 
     <productId>1</productId> 
     <categoryId>1</categoryId> 
     <name>Azalea</name> 
     <nickname>California Snow</nickname> 
     <instructions>Large double.</instructions> 
     <catalogNumber>S1</catalogNumber> 
     <price>15.99</price> 
     <photo>california_snow.jpg</photo> 
    </product> 

    <product> 
     <productId>2</productId> 
     <categoryId>1</categoryId> 
     <name>Tibouchina Semidecandra</name> 
     <instructions>Beautiful large royal.</instructions> 
     <catalogNumber>S2</catalogNumber> 
     <price>33.99</price> 
     <photo>princess_flower.jpg</photo> 
    </product> 
     ... 

Я пишу этот код ниже. В то же время, как его можно добавить и изменить? уже большое спасибо

<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" 
    skinClass="skins.HPAppSkin"> 

    <fx:Script> 
    <![CDATA[ 
     protected function button1_clickHandler(event:MouseEvent):void 
     { 

     productCollection.removeItemAt(productGrid.selectedIndex); 


     } 
    ]]> 
    </fx:Script> 

    <fx:Declarations> 
    <fx:Model id="productModel" source="data/products.xml"/> 
    <s:ArrayList id="productCollection" 
     source="{productModel.product}"/> 
    </fx:Declarations> 

    <mx:DataGrid id="productGrid" dataProvider="{productCollection}"/> 
    <s:Button label="Remove Item" click="button1_clickHandler(event)" 
    enabled="{productGrid.selectedIndex != -1}"/> 
</s:Application> 

ответ

0

RemoveItem удаляет элемент из только DataProvider - не из XML, где он загружен. Вам необходимо обновить/переписать XML соответственно после удаления элемента вручную.

0

С вашей XML ... Я думаю, что PRODUCTID уникален ... Вы можете добавить ур ProductId в массиве ... как это:

public var removedItemArray:Array = new Array(); 
protected function button1_clickHandler(event:MouseEvent):void 
    { 

    productCollection.removeItemAt(productGrid.selectedIndex); 
    removedItemArray.push(event.currentTarget.selectedItem.productId); 

    } 

Затем отправить removedItemArray данных, где вам Создайте рамки Xml и ReFrame Xml, удалив ProductIds, которые находятся в файле removeItemArray.

Я надеюсь, что это может убить ваш боб!