读书人

flex4模块中有DataGrid加载时报错解决

发布时间: 2012-04-05 12:42:40 作者: rapoo

flex4模块中有DataGrid加载时报错

Java code
<?xml version="1.0" encoding="utf-8"?><mx:HBox xmlns:fx="http://ns.adobe.com/mxml/2009"          xmlns:s="library://ns.adobe.com/flex/spark"          xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%"         label="基本信息"          backgroundAlpha="0.0" contentBackgroundAlpha="0.0"          creationComplete="init()"          >    <fx:Script>        <![CDATA[            import com.whlhy.lhymis.Modules.GoodsDGMD;                        import mx.collections.ArrayCollection;            import mx.controls.Alert;            import mx.rpc.events.ResultEvent;                        public var selectedNode:XML;                        public var GDGMD:GoodsDGMD;            public function init():void{//                goods.findAllGoodsFromSD();//                goods.addEventListener(ResultEvent.RESULT,goods_result);//                module.loadModule("BIV_GoodsDG.swf");//                Alert.show("a");            }            [color=#FF0000]            public function treeChange(e:Event):void{                selectedNode=Tree(e.target).selectedItem as XML;                if(selectedNode.@label == "基本信息"){                    displayModule("com/whlhy/lhymis/Modules/GoodsDGMD.swf");                }else{                    displayModule("com/whlhy/lhymis/Modules/WelcomeMD.swf");                }            }            private function displayModule(moduleUrl:String):void{                var url:String=module.url;                if(url==moduleUrl) return;                if(url!=null)                     module.unloadModule();                module.url=moduleUrl;            }[/color]        ]]>    </fx:Script>    <fx:Declarations>        <!-- 将非可视元素(例如服务、值对象)放在此处 -->    <mx:RemoteObject id="goods" destination="goodsService" endpoint="http://localhost:8080/LHYMIS/messagebroker/amf" />                <fx:XMLList id="treeData">                <node label="原料信息">                    <node label="基本信息"/>                    <node label="等待添加"/>                    <node label="等待添加"/>                </node>                <node label="自配料信息">                    <node label="自配料信息"/>                    <node label="等待添加"/>                    <node label="等待添加"/>                </node>                <node label="菜品信息">                    <node label="菜品信息"/>                    <node label="等待添加"/>                </node>                <node label="等待添加"/>                <node label="等待添加"/>        </fx:XMLList>            </fx:Declarations>    <mx:HDividedBox width="100%" height="100%" backgroundAlpha="0.0" contentBackgroundAlpha="0.0">        <s:BorderContainer width="20%" height="100%" backgroundAlpha="0.51" contentBackgroundAlpha="0.53">                <mx:Tree width="100%" height="100%" contentBackgroundAlpha="0.0" labelField="@label"             showRoot="false" dataProvider="{treeData}" change="treeChange(event)">        </mx:Tree>                    </s:BorderContainer >        <s:BorderContainer width="100%" height="100%">        <mx:ModuleLoader id="module"  ready="init()" height="100%"  width="100%" url="com/whlhy/lhymis/Modules/WelcomeMD.swf" />        </s:BorderContainer>    </mx:HDividedBox></mx:HBox> 



模块代码
Java code
<?xml version="1.0" encoding="utf-8"?><mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"            xmlns:s="library://ns.adobe.com/flex/spark"            xmlns:mx="library://ns.adobe.com/flex/mx" layout="horizontal" width="100%" height="100%"          >    <fx:Declarations>        <!-- 将非可视元素(例如服务、值对象)放在此处 -->    </fx:Declarations>    <mx:DataGrid  width="100%" height="100%"  >        <mx:columns>            <mx:DataGridColumn headerText="编码" dataField="code" />            <mx:DataGridColumn headerText="名称" dataField="name" />            <mx:DataGridColumn headerText="单位" dataField="unit" />            <mx:DataGridColumn headerText="价格" dataField="price" />            <mx:DataGridColumn headerText="核算单位" dataField="hsunit" />            <mx:DataGridColumn headerText="规格" dataField="spec" />            <mx:DataGridColumn headerText="进料率" dataField="jinliao" />            <mx:DataGridColumn headerText="类型" dataField="goodstypename" />        </mx:columns>    </mx:DataGrid></mx:Module>


报错信息如下:
Java code
TypeError: Error #1009: Cannot access a property or method of a null object reference.    at mx.styles::StyleProtoChain$/initProtoChainForUIComponentStyleName()[E:\dev\4.x\frameworks\projects\framework\src\mx\styles\StyleProtoChain.as:356]    at mx.styles::StyleProtoChain$/initProtoChain()[E:\dev\4.x\frameworks\projects\framework\src\mx\styles\StyleProtoChain.as:171]    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::initProtoChain()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:10446]    at mx.core::UIComponent/regenerateStyleCache()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:10509]    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::addingChild()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7213]    at mx.core::UIComponent/addChild()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:6910]    at mx.controls.listClasses::ListBase/createChildren()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3775]    at mx.controls::DataGrid/createChildren()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\DataGrid.as:1133]    at mx.core::UIComponent/initialize()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7349]    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7241]    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:3972]    at mx.core::Container/addChildAt()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:2616]    at mx.core::Container/addChild()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:2534]    at mx.core::Container/createComponentFromDescriptor()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:4392]    at mx.core::Container/createComponentsFromDescriptors()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:4181]    at mx.core::Container/createChildren()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:3187]    at mx.core::UIComponent/initialize()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7349]    at mx.core::Container/initialize()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:3129]    at com.whlhy.lhymis.Modules::GoodsDGMD/initialize()    at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\UIComponent.as:7241]    at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:3972]    at mx.core::Container/addChildAt()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:2616]    at mx.core::Container/addChild()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\Container.as:2534]    at mx.modules::ModuleLoader/moduleReadyHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\modules\ModuleLoader.as:468]    at flash.events::EventDispatcher/dispatchEventFunction()    at flash.events::EventDispatcher/dispatchEvent()    at ModuleInfoProxy/moduleEventHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\modules\ModuleManager.as:1168]    at flash.events::EventDispatcher/dispatchEventFunction()    at flash.events::EventDispatcher/dispatchEvent()    at ModuleInfo/readyHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\modules\ModuleManager.as:812]    at flash.events::EventDispatcher/dispatchEventFunction()    at flash.events::EventDispatcher/dispatchEvent()    at mx.core::FlexModuleFactory/update()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:433]    at mx.core::FlexModuleFactory/docFrameHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:582]    at mx.core::FlexModuleFactory/docFrameListener()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:126] 



Java code
TypeError: Error #1009: Cannot access a property or method of a null object reference.    at mx.controls.listClasses::ListBase/updateDisplayList()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:4336]    at mx.controls.dataGridClasses::DataGridBase/updateDisplayList()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\dataGridClasses\DataGridBase.as:682]    at mx.controls::DataGrid/updateDisplayList()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\DataGrid.as:1741]    at mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\4.x\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3966]    at mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:663]    at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]    at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.x\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]


[解决办法]
这么长的代码,看不清楚啊,你跟踪一下代码。
[解决办法]
你的主程序和模块,是分开在两个工程里的吗?
[解决办法]
GoodsDGMD本身有构造函数体么?

读书人网 >flex

热点推荐