首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

dataGrid 的 itemRenderer 有关问题!请帮忙

2012-03-02 
dataGrid 的 itemRenderer 问题!请帮忙Java codemx:DataGriddataProvider{taskListArr}mx:columns

dataGrid 的 itemRenderer 问题!请帮忙

Java code
<mx:DataGrid   dataProvider="{taskListArr}">    <mx:columns>    <mx:DataGridColumn headerText="任务名" dataField="MyName" headerStyleName="centered"/>        <mx:DataGridColumn headerText="操作" width="70" resizable="false" headerStyleName="centered">        <mx:itemRenderer>        <mx:Component>            <mx:Button  fontSize="12" label="删除" click="openEditWindow(data)">                <mx:Script>                <![CDATA[                    private function openEditWindow(data:Object){                                               //在这里如何得到 MyName 的值?                                        }                                      ]]>                </mx:Script>              </mx:Button>        </mx:Component>         </mx:itemRenderer>     </mx:DataGridColumn>     </mx:columns></mx:DataGrid>


[解决办法]
没太理解楼主的用意;一般很少这么用吧
可以给Grid注册focusin事件通过选中项获取值如
Assembly code
<?xml version="1.0"?><!-- DataGrid control example. --><mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">    <mx:XMLList id="employees">        <employee>            <name>Christina Coenraets</name>            <phone>555-219-2270</phone>            <email>ccoenraets@fictitious.com</email>            <active>true</active>        </employee>        <employee>            <name>Joanne Wall</name>            <phone>555-219-2012</phone>            <email>jwall@fictitious.com</email>            <active>true</active>        </employee>        <employee>            <name>Maurice Smith</name>            <phone>555-219-2012</phone>            <email>maurice@fictitious.com</email>            <active>false</active>        </employee>        <employee>            <name>Mary Jones</name>            <phone>555-219-2000</phone>            <email>mjones@fictitious.com</email>            <active>true</active>        </employee>    </mx:XMLList>    <mx:Panel title="DataGrid Control Example" height="100%" width="100%"         paddingTop="10" paddingLeft="10" paddingRight="10">        <mx:Label width="100%" color="blue"            text="Select a row in the DataGrid control."/>        <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}">            <mx:columns>                <mx:DataGridColumn dataField="name" headerText="Name"/>                <mx:DataGridColumn dataField="phone" headerText="Phone"/>                <mx:DataGridColumn dataField="email" headerText="Email"/>            </mx:columns>        </mx:DataGrid>        <mx:Form width="100%" height="100%">            <mx:FormItem label="Name">                <mx:Label text="{dg.selectedItem.name}"/>            </mx:FormItem>            <mx:FormItem label="Email">                <mx:Label text="{dg.selectedItem.email}"/>            </mx:FormItem>            <mx:FormItem label="Phone">                <mx:Label text="{dg.selectedItem.phone}"/>            </mx:FormItem>        </mx:Form>            </mx:Panel></mx:Application> 


[解决办法]
parentDocument.MyName.XXXX
[解决办法]
private function openEditWindow(data:Object):void{
// data为当前行记录.
Alert.show(data.MyName);
}
[解决办法]

探讨
parentDocument.MyName.XXXX

[解决办法]
用this.data.MyName可以获取的啊
[解决办法]
探讨

private function openEditWindow(data:Object):void{
// data为当前行记录.
Alert.show(data.MyName);
}

[解决办法]
outerDocument.MyName.XXXX
[解决办法]
很简单的啦,data.MyName就可以了
[解决办法]
<mx:DataGrid dataProvider="{taskListArr}">
<mx:columns>
<mx:DataGridColumn headerText="任务名" dataField="MyName" headerStyleName="centered"/>
<mx:DataGridColumn headerText="操作" width="70" resizable="false" headerStyleName="centered">
<mx:itemRenderer>
<mx:Component>
<mx:Button fontSize="12" label="删除" click="openEditWindow(data)">
<mx:Script>
<![CDATA[
var name:String ="";
override public function set data(value:Object):void
{
super.data = value;
name = value.name;
}
private function openEditWindow(data:Object)
{
//重写set data 方法 可以获取到你要的名字

}
]]>
</mx:Script>
</mx:Button>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
[解决办法]
直接data.MyName就可以了,data就是itemRenderer当前行的object,这样data.MyName也就是当前行的MyName.

热点排行