`

outerDocument : 使用itemRender 和item Editor时想要访问外部量的关键字

    博客分类:
  • flex
阅读更多

You use the <mx:Component> tag to define an inline item renderer or item editor in an MXML file.

The <mx:Component> tag defines a new scope within an MXML file, where the local scope of the item renderer or item editor is defined by the MXML code block delimited by the <mx:Component> and </mx:Component> tags. To access elements outside of the local scope of the item renderer or item editor, you prefix the element name with the outerDocument keyword.

For example, you define one variable named localVar in the scope of the main application, and another variable with the same name in the scope of the item renderer. From within the item renderer, you access the application's localVar by prefixing it with outerDocument keyword, as the following example shows:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			// Variable in the Application scope.          
			[Bindable]          public var localVar:String="Application localVar";        
			// Data includes URL to album cover.          
			private var initDG:Array = [{ Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99,Cover:'http://localhost:8100/f15/slanted.jpg'},{ Artist:'Pavement', Album:'Brighten the Corners', Price:11.99,Cover:'http://localhost:8100/f15/brighten.jpg'}];
		]]>
	</mx:Script>
	<mx:DataGrid id="myGrid" dataProvider="{initDG}" variableRowHeight="true">
		<mx:columns>
			<mx:DataGridColumn dataField="Artist"/>
			<mx:DataGridColumn dataField="Album"/>
			<mx:DataGridColumn dataField="Cover">
				<mx:itemRenderer>
					<mx:Component>
						<mx:VBox>
							<mx:Script>
								<![CDATA[
									// Variable in the renderer scope.        
									public var localVar:String="Renderer localVar";
								]]>
							</mx:Script>
							<mx:Text id="albumName" width="100%" selectable="false" text="{data.Album}"/>
							<mx:Image id="albumImage" height="45" source="{data.Cover}"/>
							<mx:TextArea text="{'Renderer localVar= ' + localVar}"/>
							<mx:TextArea text="{'App localVar= ' + outerDocument.localVar}"/>
						</mx:VBox>
					</mx:Component>
				</mx:itemRenderer>
			</mx:DataGridColumn>
			<mx:DataGridColumn dataField="Price"/>
		</mx:columns>
	</mx:DataGrid>
</mx:Application>
 

 

    One use of the outerDocument keyword is to initialize the data provider of a control within the inline item editor. For example, you can use a web service, or other mechanism, to pass data into the application, such as the list of U.S. states. You can then initialize all ComboBox controls that are used as item editors from a single property of the application that contains the list of U.S. states.

MXML Syntax

The <mx:Component> tag has the following syntax:

      <mx:Component        id=""        className=""      >         

            ...          child tags         

            ...      </mx:Component>

You cannot create an empty <mx:Component></mx:Component> tag; you must define at least one child tag within the <mx:Component></mx:Component> tags.

The id property lets you specify an identifier for the inline component so that you can use it as the source for a data binding expression.

The className property lets you specify the name of the class generated by Flex for the inline component so that you can reference the elements of the component in ActionScript. For more information, see the Using Item Renderers and Item Editors chapter in the Flex Developer's Guide book.



thaks:http://blog.csdn.net/tingqier/archive/2008/10/17/3090326.aspx

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/05/09/using-a-slider-control-as-a-datagrid-column-item-renderer-in-flex/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">
 
    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object label="Student A" score="85" />
                <mx:Object label="Student B" score="48" />
                <mx:Object label="Student C" score="71" />
                <mx:Object label="Student D" score="88" />
                <mx:Object label="Student E" score="24" />
                <mx:Object label="Student F" score="64" />
                <mx:Object label="Student G" score="76" />
                <mx:Object label="Student H" score="76" />
                <mx:Object label="Student I" score="93" />
                <mx:Object label="Student J" score="88" />
                <mx:Object label="Student K" score="48" />
                <mx:Object label="Student L" score="76" />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>
 
    <mx:DataGrid id="dataGrid"
            dataProvider="{arrColl}"
            selectable="false"
            rowCount="6"
            width="500">
        <mx:columns>
            <mx:DataGridColumn dataField="label" />
            <mx:DataGridColumn dataField="score" />
            <mx:DataGridColumn dataField="score">
                <mx:itemRenderer>
                    <mx:Component>
                        <mx:HBox horizontalScrollPolicy="off"
                                verticalScrollPolicy="off">
                            <mx:Script>
                                <![CDATA[
                                    import mx.events.SliderEvent;
 
                                    private function slider_change(evt:SliderEvent):void {
                                        data.score = evt.value;
                                        outerDocument.arrColl.refresh();
                                    }
                                ]]>
                            </mx:Script>
 
                            <mx:HSlider minimum="0"
                                    maximum="100"
                                    value="{data.score}"
                                    liveDragging="true"
                                    snapInterval="1"
                                    width="100%"
                                    change="slider_change(event);" />
                        </mx:HBox>
                    </mx:Component>
                </mx:itemRenderer>
            </mx:DataGridColumn>
        </mx:columns>
    </mx:DataGrid>
 
</mx:Application>

 from:http://blog.minidx.com/2008/05/10/837.html

 

 

分享到:
评论

相关推荐

    PCB设计大全:使用OrCAD Capture与PCB Editor[中文版].pdf

    本书《PCB设计大全:使用OrCAD Capture与PCB Editor》是全面介绍PCB(Printed Circuit Board,印制电路板)设计的参考书,由Kraig Mitzner撰写。本书详细介绍了OrCAD软件包在PCB设计中的应用,特别是OrCAD Capture和...

    abap破解访问关键字

    ABAP 访问关键字破解 ABAP 访问关键字破解是指在 SAP 系统中,通过修改权限判断文件 LSKEYF00 中的判断参数的值,以达到绕过权限判断的目的。下面是破解步骤的详细分析: 一、去掉权限判断文件 LSKEYF00 的只读...

    Character Editor Megapack 5.0.unitypackage

    Character Editor Megapack 5.0 资源包

    html中引入ACE Editor,实现关键字提示和代码片段提示

    接下来,我们要实现关键词提示和代码片段提示。ACE Editor本身已经内置了自动完成功能,我们可以配置编辑器以启用这一特性。例如,对于JavaScript,可以这样设置: ```javascript var editor = ace.edit("editor");...

    PDF Editor( PDF Editor)

    - 选择合适的PDF Editor:市场上有许多PDF工具,免费和付费都有,如Adobe Acrobat、Foxit PhantomPDF、NitroPDF等。根据个人需求和预算选择最适合自己的版本。 - 遵守版权法:在编辑或修改PDF时,确保你有权利这样...

    PCB设计大全:使用OrCAD Capture与PCB Editor 高清版

    PCB设计大全:使用OrCAD Capture与PCB Editor 高清版

    ABAQUS帮助里关键字(keywords)翻译.doc

    这意味着当关键字后面带有参数时,必须使用逗号将参数分开,以便ABAQUS正确地识别参数。 4.参数间都采用逗号隔开 这意味着在参数中,所有参数都必须使用逗号分开,以便ABAQUS正确地识别参数。 5.关键词可以采用...

    ICSharpCode.TextEditor如何自定义代码折叠和高亮

    ICSharpCode.TextEditor是一款在.NET平台上广泛使用的开源代码编辑控件,它提供了丰富的文本编辑功能,包括代码高亮和折叠,使得开发人员可以方便地在应用程序中集成代码编辑功能。这款控件支持多种编程语言的语法...

    Unity Character Editor Megapack

    Unity Character Editor Megapack

    IUP_FB_EDITOR:IUP_FB_EDITOR - freebasic 的简单开发环境-开源

    IUP_FB_EDITOR - 编辑器(freebasic 的简单开发环境)。 支持: 主要编辑功能 代码完成 书签 转换为所需的字符大小写 搜索\替换编译\运行\快速启动 能够运行第三方程序/工具 转换\保存文件为不同的编码 语法高亮 ...

    tui-editor1.3.3

    tui-editor1.3.3/tui-editor/tui-editor死活下载不了

    Unity3D 运行时编辑器Runtime Editor

    在Unity中,"运行时编辑器"(Runtime Editor)是一个高级特性,它允许开发者在游戏运行过程中动态编辑游戏对象、组件和数据,极大地提高了开发效率和游戏调试能力。 一、运行时编辑器的概念与作用 运行时编辑器是...

    010 editor的使用

    ### 010 Editor的使用:模板语法详解 #### 一、010 Editor简介 010 Editor是一款专业的文本编辑器与十六进制编辑器,设计初衷在于让用户能够快速且方便地编辑计算机上的任何文件内容。无论是硬盘上的二进制文件...

    采用MonacoEditor和React打造自己的Web IDE

    3. **语法高亮**:根据TodoLang的语法,用不同的颜色和样式突出显示关键字和字符串等元素。 4. **语法和语义验证**:检测并标记不符合TodoLang语法规则或语义规则的代码。 对于TodoLang的语义规则,有两点需要注意...

    Eclipse的JavaScript插件 JSEditor

    Eclipse作为一个强大的开源集成开发环境(IDE),广泛用于Java编程,但...使用Eclipse的JavaScript插件JSEditor,意味着你可以在一个专业且功能全面的环境中编写和调试JavaScript代码,享受到高效且便捷的开发体验。

    Intrepid ASAP 2 Editor及使用教程

    Intrepid ASAP 2 Editor提供了一个图形化的用户界面,使得用户可以轻松地创建、编辑和管理这些文件,减少了手动编写和维护的工作量。 **Intrepid ASAP 2 Editor功能** 1. **图形化界面**:编辑器提供了直观的拖放...

    editor.md-master.zip

    Markdown是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML(超文本标记语言)文档。在标题提到的"editor.md-master.zip"压缩包中,我们拥有一个名为"editor.md-master...

    Keil中如何设置字体类型并修改关键字和注释颜色[整理].pdf

    要修改关键字和注释的颜色,需要按照以下步骤进行: 1. 点击工具栏上的【Configuration】按钮(是一个扳手状的图标)。 2. 在出现的界面中选择【Colors&Fonts 】标签页。 3. 选择【8051:Editor C Files】,在右边...

    SnippetEditor

    3. **触发关键字与自动补全**:用户可以设定每个代码片段的触发关键字,当在代码编辑器中输入该关键字时,"SnippetEditor"会自动补全对应的代码片段,节省了手动输入的时间。 4. **占位符与参数化**:在代码片段中...

Global site tag (gtag.js) - Google Analytics