把一个XML赋给一个DataGrid的dataProvider,
然后对XML的结点用DELETE进行删除操作。
问题是,有时候删除,可以触发dataProvider的DATA_CHANGE事件,
有时候触发不了。请问有谁遇到过这样的问题吗?
问题补充:
<br /><?xml version="1.0" encoding="utf-8"?>
<br /><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
<br /> xmlns:s="library://ns.adobe.com/flex/spark"
<br /> xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
<br /> creationComplete="application1_creationCompleteHandler(event)">
<br /> <s:layout>
<br /> <s:VerticalLayout/>
<br /> </s:layout>
<br />
<br /> <fx:Script>
<br /> <![CDATA[
<br /> import mx.collections.*;
<br /> import mx.events.*;
<br />
<br /> public var dataProviderSource:XMLListCollection;
<br />
<br /> protected function insertData_clickHandler(event:MouseEvent):void
<br /> {
<br /> trace("before delete:" + dataProviderSource.source.toXMLString());
<br /> // 删除john的名字,好用
<br /> delete dataProviderSource.source[0].name[0];
<br /> // 删除john,不好用
<br /> //delete dataProviderSource.source[0];
<br /> trace("after delete:" + dataProviderSource.source.toXMLString());
<br /> }
<br />
<br /> protected function application1_creationCompleteHandler(event:FlexEvent):void
<br /> {
<br /> dataProviderSource = new XMLListCollection();
<br /> dataProviderSource.addEventListener(CollectionEvent.COLLECTION_CHANGE , dataChangedHandler);
<br /> dataProviderSource.source = contacts;
<br /> }
<br />
<br /> private function dataChangedHandler( event:CollectionEvent ):void{
<br /> trace("aaaaaaaa");
<br /> }
<br />
<br /> ]]>
<br /> </fx:Script>
<br />
<br />
<br /> <mx:DataGrid id="dg" width="400" height="200" dataProvider="{contacts}"
<br /> dragEnabled="true"
<br /> dragMoveEnabled="true"
<br /> dropEnabled="true">
<br /> <mx:columns>
<br /> <mx:DataGridColumn dataField="name" />
<br /> <mx:DataGridColumn dataField="email" />
<br /> </mx:columns>
<br /> </mx:DataGrid>
<br />
<br /> <s:Button id="insertData" click="insertData_clickHandler(event)" label="display data" />
<br />
<br />
<br /> <fx:Declarations>
<br /> <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 -->
<br /> <fx:XMLList xmlns="" id="contacts">
<br /> <emp>
<br /> <name>
<br /> john
<br /> </name>
<br /> <email>
<br /> hotdust@163.com
<br /> </email>
<br /> </emp>
<br /> <emp>
<br /> <name>
<br /> mary
<br /> </name>
<br /> <email>
<br /> mary@163.com
<br /> </email>
<br /> </emp>
<br /> </fx:XMLList>
<br />
<br /> </fx:Declarations>
<br />
<br /></s:Application>
<br />
<br />
<br />在insertData_clickHandler方法中,有两个删除语句,
<br />第一个删除name子节点的语句好用,执行完后,DataGrid发生变化。
<br />第二个删除emp整个节点的语句不好用,执行完后,DataGrid不发生变化。
<br />
<br />调查了一下,原因是DataGrid的Data_Change事件没有被触发,
<br />但为什么删除name子节点时就可以被触发,删除emp整个节点时就不能被
<br />触发呢?谢谢大家了。
<br />
问题补充:<div class="quote_title">283433775 写道</div><div class="quote_div">能提供部分的代码吗,这样谁都很能定位问题。</div>
<br />谢谢你的回复,代码已经发上去了,但格式不太好,没有再编辑功能,可能会看着很累,辛苦了。
问题补充:想使用delete方法时进行删除.
<br />不想使用XMLListCollection.removeItemAt方法,
<br />因为这个方法无法删除找到子节点进行删除,如:上面的删除NAME子节点.
问题补充:总结了一下:
<br />删除DataGrid中的一行的话,datagrid的dataProvider不自动更新.
<br />删除DataGrid中的一行中的一个字段的话,datagrid的dataProvider自动更新.
<br />
<br />有谁知道原理吗?
问题补充:<div class="quote_title">283433775 写道</div><div class="quote_div">首先,我不能给你个明确的答案,但是我发表一下个人的柑橘:
<br />
<br />你的name是dataFiled也就是数据域,你的email也是,你可以试试删除email时触发事件否?
<br />
<br />你的emp不是数据域,所以在理论上讲,见车数据变动时不算作事件触发的条件。
<br />
<br />仅供参考。</div>
<br />
<br />对于删除一行的的需求有什么解决方案吗?
<br />最好是那种自动触发的解决方案(修改DataGrid等.),
<br />如果是手动的话,很多地方都要加上处理.
<br />谢谢你百忙之中的回复.
相关推荐
能够批量读取文件,并获取文件中的内容,同时对缺失文件进行删除
删除文件中重复的数据,。点云数据的采集存在密集性,有些时候解码会重复的读取数据
2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,...
v_delete_red_x24.xml
v_delete_dark_x24.xml
从github上拿到的第三方插件用于删除docker registry上的镜像
delete[] out_data_ptr, out_data_ptr = NULL; } result.append(GetHexStr(param.ua_)); result.append(GetHexStr(param.ub_)); result.append(GetHexStr(param.uc_)); result.append(GetHexStr(param.ud_))...
SQL Server中新增加了XML.Modify()方法,分别为xml.modify(insert),xml.modify(delete),xml.modify(replace)对应XML的插入,删除和修改操作。 本文以下面XML为例,对三种DML进行说明: declare @XMLVar xml = ‘ ...
Comparing Two Data Sets When Some Variables Are Not in Both Data Sets 161 Som Some PROC SQL Solutions to Data Cleaning Introduction 165 A Quick Review of PROC SQL 166 Checking for Invalid Character ...
secure-delete-3.1-6.2.x86_64版本,...secure-delete 软件包包含一些安全删除工具,这些工具能够安全清除文件数据、释放磁盘空间、交换分区和内存。 secure-delete 软件包中包含下列命令: srm sdel sdmem sfill sswap
该源码的主要功能:用MFC+ADO+SQLServer实现从List Control控件中删除数据,从而删除数据库表中的数据,风格规范,功能实用,是学习ADO编程的好例子。
secure-delete-3.1-8.5.x86_64版本,...secure-delete 软件包包含一些安全删除工具,这些工具能够安全清除文件数据、释放磁盘空间、交换分区和内存。 secure-delete 软件包中包含下列命令: srm sdel sdmem sfill sswap
Delete Node in a Linked List问题This is a LeetCode question, I knew its solution,
1.下载适用于Windows的delete_chrome_policies.zip 2.关闭所有打开的Chrome窗口。 3.解压缩刚刚下载的文件。 4.右键管理员权限运行该dat文件。
解决error LNK2005 void __cdecl operator delete(void
内附样例程序,不过最好还是到网上搜搜其他人的例子(PS:如果你不想看源码的话),网上发部的例子都是new了xmldocumen对象,(添加的元素节点都是以new的方式)却没有释放,这个只要在xmldocument使用后,...
(d)删除结点DNode* deleteNode(); (e)获取左侧相邻节点地址DNode* nextNodeRight(); (f)获取右侧相邻节点的地址DNode* nextNodeLeft(); (g)结点数据输出printNode(); 编写主程序:输入不少于3组x、y整数,分别利用...
用python写代码删除文件, 记得输入pyinstaller -F -w delete_folder11_all_files.py 就可以生成exe执行文件了。 用python写代码删除文件, 记得输入pyinstaller -F -w delete_folder11_all_files.py 就可以生成exe...
在Visual C++环境下,实现删除选择的目录及目录下的文件。
Delete User using mysql in vb6