当前位置: 首页 > news >正文 flex datagrid 设置超链接 news 来源:原创 2024/5/3 9:53:33 下面是一个在datagrid中设置超链接的一个小例子: DataGridLink.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="preinit();" creationComplete="creationComplete();" viewSourceURL="srcview/index.html"> <mx:XMLList id="employees"> <employee> <name>Christina Coenraets</name> <phone>555-219-2270</phone> <email>ccoenraets@fictitious.com</email> </employee> <employee> <name>Joanne Wall</name> <phone>555-219-2012</phone> <email>jwall@fictitious.com</email> </employee> <employee> <name>Maurice Smith</name> <phone>555-219-2012</phone> <email>maurice@fictitious.com</email> </employee> <employee> <name>Mary Jones</name> <phone>555-219-2000</phone> <email>mjones@fictitious.com</email> </employee> </mx:XMLList> <mx:Script> <!--[CDATA[ import mx.collections.ArrayCollection; import mx.controls.dataGridClasses.DataGridColumn; import mx.controls.Alert; private var dataGridColumns:Array = new Array(); private var queryDataGridColumns:ArrayCollection = new ArrayCollection([ { headerText:"Name", dataField: "name",linkable:true} ,{ headerText:"Phone", dataField: "phone",linkable:false} ,{ headerText:"Email", dataField: "email",linkable:false} ]) ; private function preinit():void { for(var i:int = 0; i< queryDataGridColumns.length; i++) { var dataGridColumn:DataGridColumn = new DataGridColumn(); dataGridColumn.headerText = queryDataGridColumns.getItemAt(i).headerText ; dataGridColumn.dataField = queryDataGridColumns.getItemAt(i).dataField ; dataGridColumn.visible = true ; if(queryDataGridColumns.getItemAt(i).linkable) { var urlLinkRenderer:ClassFactory = new ClassFactory(UrlLinkRenderer); urlLinkRenderer.properties = { linkButtonLabel: queryDataGridColumns.getItemAt(i).dataField }; dataGridColumn.itemRenderer = urlLinkRenderer ; } dataGridColumns.push(dataGridColumn); } } private function creationComplete():void { createDataGrid(); this.addEventListener("DataGridLinkButtonClickEvent",linkButtonClickHandler); } private function createDataGrid():void { queryDataGrid.columns = dataGridColumns ; //BindingUtils.bindProperty(queryDataGrid,"dataProvider",this,"_queryDataGridProvider"); this.addChild(queryDataGrid); } private function linkButtonClickHandler(event:LinkButtonDynamicEvent):void { Alert.show(event.rowObject.name );//输出内容 } ]]--> </mx:Script> <mx:DataGrid top="5" left="5" right="5" bottom="5" dataProvider="{employees}" id="queryDataGrid"> </mx:DataGrid> </mx:Application> LinkButtonDynamicEvent.as package { import mx.events.DynamicEvent; public class LinkButtonDynamicEvent extends DynamicEvent { public var rowObject:Object ; public function LinkButtonDynamicEvent(type:String, object:Object) { super(type, true ); this.rowObject = object ; } } } UrlLinkRenderer.as package { import mx.controls.Label; import mx.controls.LinkButton; import flash.events.MouseEvent; import mx.events.DynamicEvent; public class UrlLinkRenderer extends LinkButton { private var newUrlLink:Label; private var orderByFilter:String; [Bindable] private var _linkButtonLabel:String = "" ; [Bindable] private var _rowObject:Object = new Object(); public function UrlLinkRenderer() { super(); this.setStyle("textDecoration","underline"); this.setStyle("textAlign","left"); this.addEventListener(MouseEvent.CLICK,linkButtonClickHandler); } /** * Override the set method for the data property. function also sets the data for the * container instance and sets member variables newId, newLabel, and newCheckBox.selected value * */ override public function set data(value:Object):void { super.data = value; // Make sure there is data if (value != null) { //Alert.show("test"); var str:String = ""; for (var i:Object in value) { str += i + " || " + value[i] + "/n"; } this._rowObject = value ; this.label = value[_linkButtonLabel]; } } public function set linkButtonLabel(value:String):void { _linkButtonLabel = value ; } public function get linkButtonLabel():String { return _linkButtonLabel ; } private function linkButtonClickHandler(e:MouseEvent):void { var event:LinkButtonDynamicEvent = new LinkButtonDynamicEvent("DataGridLinkButtonClickEvent",_rowObject); dispatchEvent(event); } } } 相关文章: 攻克vue路由 如何设置光驱启动 三个臭皮匠顶个诸葛亮的随机森林算法! String类的几个方法 捡石子---贪心算法(huffman) HTML特殊字符编码对照表 Flex中ArrayCollection的复制(克隆) mysql表的复制 作用域与作用域链 批量修改SQL数据库字段值 [C#7] 1.Tuples(元组) flex z-order错误解决 css居中小结 Flex的DataGrid中时间如何格式化 买卖股票最佳时机 android图片蒙层 C# 免费离线人脸识别 2.0 Demo canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字... Flannel解读 Java-详解HashMap JS字符串转数字方法总结 Phpstorm怎样批量删除空行? Vue 重置组件到初始状态 webpack4 一点通 WePY 在小程序性能调优上做出的探究 发布国内首个无服务器容器服务,运维效率从未如此高效 极限编程 (Extreme Programming) - 发布计划 (Release Planning) 开源SQL-on-Hadoop系统一览 目录与文件属性:编写ls 排序(1):冒泡排序 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果 新手搭建网站的主要流程 赢得Docker挑战最佳实践 转载:[译] 内容加速黑科技趣谈 AI算硅基生命吗,为什么? 你学不懂C语言,是因为不懂编写C程序的7个步骤 ... Python 3 新特性:类型注解 ## 临床数据 两两比较 加显著性boxplot加显著性 #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用 $var=htmlencode(“‘);alert(‘2“); 的个人理解 (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散 (NSDate) 时间 (time )比较 (二)换源+apt-get基础配置+搜狗拼音 (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB (附源码)springboot 校园学生兼职系统 毕业设计 742122 (附源码)springboot家庭装修管理系统 毕业设计 613205 (十三)Maven插件解析运行机制 (原創) 系統分析和系統設計有什麼差別? (OO) (转)清华学霸演讲稿:永远不要说你已经尽力了 .NET 2.0中新增的一些TryGet,TryParse等方法 .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径 .Net IE10 _doPostBack 未定义 .NET Windows:删除文件夹后立即判断,有可能依然存在 .NET 常见的偏门问题 .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
下面是一个在datagrid中设置超链接的一个小例子: DataGridLink.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" preinitialize="preinit();" creationComplete="creationComplete();" viewSourceURL="srcview/index.html"> <mx:XMLList id="employees"> <employee> <name>Christina Coenraets</name> <phone>555-219-2270</phone> <email>ccoenraets@fictitious.com</email> </employee> <employee> <name>Joanne Wall</name> <phone>555-219-2012</phone> <email>jwall@fictitious.com</email> </employee> <employee> <name>Maurice Smith</name> <phone>555-219-2012</phone> <email>maurice@fictitious.com</email> </employee> <employee> <name>Mary Jones</name> <phone>555-219-2000</phone> <email>mjones@fictitious.com</email> </employee> </mx:XMLList> <mx:Script> <!--[CDATA[ import mx.collections.ArrayCollection; import mx.controls.dataGridClasses.DataGridColumn; import mx.controls.Alert; private var dataGridColumns:Array = new Array(); private var queryDataGridColumns:ArrayCollection = new ArrayCollection([ { headerText:"Name", dataField: "name",linkable:true} ,{ headerText:"Phone", dataField: "phone",linkable:false} ,{ headerText:"Email", dataField: "email",linkable:false} ]) ; private function preinit():void { for(var i:int = 0; i< queryDataGridColumns.length; i++) { var dataGridColumn:DataGridColumn = new DataGridColumn(); dataGridColumn.headerText = queryDataGridColumns.getItemAt(i).headerText ; dataGridColumn.dataField = queryDataGridColumns.getItemAt(i).dataField ; dataGridColumn.visible = true ; if(queryDataGridColumns.getItemAt(i).linkable) { var urlLinkRenderer:ClassFactory = new ClassFactory(UrlLinkRenderer); urlLinkRenderer.properties = { linkButtonLabel: queryDataGridColumns.getItemAt(i).dataField }; dataGridColumn.itemRenderer = urlLinkRenderer ; } dataGridColumns.push(dataGridColumn); } } private function creationComplete():void { createDataGrid(); this.addEventListener("DataGridLinkButtonClickEvent",linkButtonClickHandler); } private function createDataGrid():void { queryDataGrid.columns = dataGridColumns ; //BindingUtils.bindProperty(queryDataGrid,"dataProvider",this,"_queryDataGridProvider"); this.addChild(queryDataGrid); } private function linkButtonClickHandler(event:LinkButtonDynamicEvent):void { Alert.show(event.rowObject.name );//输出内容 } ]]--> </mx:Script> <mx:DataGrid top="5" left="5" right="5" bottom="5" dataProvider="{employees}" id="queryDataGrid"> </mx:DataGrid> </mx:Application> LinkButtonDynamicEvent.as package { import mx.events.DynamicEvent; public class LinkButtonDynamicEvent extends DynamicEvent { public var rowObject:Object ; public function LinkButtonDynamicEvent(type:String, object:Object) { super(type, true ); this.rowObject = object ; } } } UrlLinkRenderer.as package { import mx.controls.Label; import mx.controls.LinkButton; import flash.events.MouseEvent; import mx.events.DynamicEvent; public class UrlLinkRenderer extends LinkButton { private var newUrlLink:Label; private var orderByFilter:String; [Bindable] private var _linkButtonLabel:String = "" ; [Bindable] private var _rowObject:Object = new Object(); public function UrlLinkRenderer() { super(); this.setStyle("textDecoration","underline"); this.setStyle("textAlign","left"); this.addEventListener(MouseEvent.CLICK,linkButtonClickHandler); } /** * Override the set method for the data property. function also sets the data for the * container instance and sets member variables newId, newLabel, and newCheckBox.selected value * */ override public function set data(value:Object):void { super.data = value; // Make sure there is data if (value != null) { //Alert.show("test"); var str:String = ""; for (var i:Object in value) { str += i + " || " + value[i] + "/n"; } this._rowObject = value ; this.label = value[_linkButtonLabel]; } } public function set linkButtonLabel(value:String):void { _linkButtonLabel = value ; } public function get linkButtonLabel():String { return _linkButtonLabel ; } private function linkButtonClickHandler(e:MouseEvent):void { var event:LinkButtonDynamicEvent = new LinkButtonDynamicEvent("DataGridLinkButtonClickEvent",_rowObject); dispatchEvent(event); } } }