update Flex TreeGrid
Summary:
在DataGrid中显示层级结构,google了一下,找到flexlib中的TreeGrid。把源码加载到项目中,按照文档去实现其功能。最后发现有好多bug,比如定位不准,无法拖动等问题。通过阅读和修改TreeGrid类,这些bug都解决了。接着无意中发现,排序有问题。点击列头排序,发现层级结构变混乱了,这个问题比较严重。因为create dataProvider是最核心的内容了。在开源社区(Sapience360 )上找到了另外一个TreeGrid,但版本有点老了,不支持flex2.0以上。
Requirement: 使treeGrid支持flex 2.0以上。
Solution:
对比SDK 1.5 和 SDK 3.2 DataGrid源码发现,TreeGrid 的placeSortArrow() 方法应该修改一下。可以直接调用DataGridHeader类的方法。
override protected function placeSortArrow():void
{
DataGridHeader(header).mx_internal::_placeSortArrow();
}
删除无用的变量 如下:
/**
* @private
* The index of the column being sorted.
*/
private var sortIndex:int = -1;
* @private
* The direction of the sort
*/
private var sortDirection:String;
/**
* @private
* The index of the last column being sorted on.
*/
private var lastSortIndex:int = -1;
==============================================
修改后的TreeGrid.as 类如下:
package org.osflex {
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
import mx.collections.IViewCursor;
import mx.controls.DataGrid;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.dataGridClasses.DataGridHeader;
import mx.core.EventPriority;
import mx.core.FlexSprite;
import mx.core.IFlexDisplayObject;
import mx.core.mx_internal;
import mx.events.DataGridEvent;
use namespace mx_internal;
[IconFile("/assets/treegrid.png")]
/**
* A DataGrid that allow
相关文档:
首先建一个netbeans的java web项目
然后从网上吧blazeds.war 下载下来用rar 解压 把web-inf 替换掉在netbeans\web 下面的web-inf中的全部文件
然后 部署下
在打开flex builder 新建一个flex project 写上名字和项目路径
在Application server type 选中j2ee
点击 下一步
然后 Root folder选中net ......
上次听朋友提起现在再用Flex做项目,闲暇之余在自己的电脑上配置了Flex + myeclipse的开发环境。虽然开发环境搭建花了不少的时间,也遇到了不少问题。再解决这些问题的时候,也找了不少的资料,学到了不少东西。呵呵
继续研究学习................... ......
一、Application常用的事件
initialize=============>初始化
createcomplate==========>元素加载完
initialize发生在createcomplate之前。
二、数据请求说明
HTTPService==========>http数据请求。
SOAP(Simple Object Access Protocal)=======> webService
AMF(Adobe Action Message Format)========&g ......
strategyMarketsOfCurrentStrategy.addEventListener(CollectionEvent.COLLECTION_CHANGE, strategyMarketsDataChangedHandler);
strategyMarketsOfCurrentStrategy.removeAll(); &nbs ......
返回数据的格式resultFormat有几种类型,object、array、xml、flashvars、text和e4x,默认的设置为object。
RESULT_FORMAT_ARRAY : String = "array"
[] 结果格式“array”与“object”相似,但是其返回的值始终为数组;这样,如果从结果格式“object”返回的结果尚不是数组,则将把该项 ......