- 浏览: 210910 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zlbdexiaohao:
怎么去掉默认的图标,folderClosedIcon=&quo ...
FLEX 构建完美的带有CheckBox三状态的Tree控件 -
zlbdexiaohao:
看不懂看不懂
FLEX 构建完美的带有CheckBox三状态的Tree控件 -
FYIHDG:
[list][*][list][*][*][list][*][ ...
ImageIO读jpg的时候出现exception:bandOffsets.length is wr -
被剥削的程序员:
你好我在引用你的comboxtree解决问题的时候,发现点击父 ...
ComboBoxTree -
527184687:
<table class="bbcode&qu ...
ext treePanel 更换图标 总结
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" verticalAlign="middle" backgroundColor="white" creationComplete="init();"> <mx:Script> <![CDATA[ import hessian.service.FlexTestService; import mx.collections.ICollectionView; import mx.collections.XMLListCollection; import mx.controls.Alert; import mx.controls.Tree; import mx.events.ListEvent; import mx.rpc.events.ResultEvent; import mx.managers.PopUpManager; var noteId:String; //初始化从数据库中获得tree private function init():void { getTree(); } //监听tree item的click事件 private function tree_itemClick(evt:ListEvent):void { var item:Object = Tree(evt.currentTarget).selectedItem; if (tree.dataDescriptor.isBranch(item)) { tree.expandItem(item, !tree.isItemOpen(item), true); } } //tree的item有子节点的显示(子节点个数) private function tree_labelFunc(item:XML):String { var children:ICollectionView; var suffix:String = ""; if (tree.dataDescriptor.isBranch(item)) { children = tree.dataDescriptor.getChildren(item); suffix = " (" + children.length + ")"; } return item[tree.labelField] + suffix; } [Bindable] public var selectedNode:XML; //当tree发生change事件时的事件 public function treeChanged(event:Event):void { //将选中的节点转换成xml,赋予selectedNode,as为转换类型 selectedNode = Tree(event.target).selectedItem as XML; noteId = selectedNode.@sid; } //获得tree的方法 public function getTree():void { //构造service时指定回调方法名称 var service:FlexTestService = new FlexTestService(result); service.getTree(); } var returnString:String; var treeDate:XML //回调方法 public function result(data:Object):void { //java端返回的数据转化成String类型 returnString = data as String; //利用returnString构造一个xml,这里是关键了 treeDate = new XML(returnString); //把构造的xml文件绑定到tree上 tree.dataProvider = treeDate; } //删除某一节点 public function delNote():void { var service:FlexTestService = new FlexTestService(result); service.delNote(noteId); } //增加一个节点 public function addNote():void { var service:FlexTestService = new FlexTestService(result); service.addNote(noteId, nodeName.text); } //重命名节点 public function updateNote():void { var service:FlexTestService = new FlexTestService(result); service.updateNote(noteId, nodeName.text); } ]]> </mx:Script> <mx:Tree id="tree" showRoot="false" labelField="@label" labelFunction="tree_labelFunc" width="258" rowCount="6" itemClick="tree_itemClick(event);" x="301" y="205" height="208" change="treeChanged(event);"/> <mx:Button width="98" height="31" click="addNote();" x="374" y="440" label="添加" fontSize="16"/> <mx:Button width="98" height="31" click="updateNote();" x="374" y="482" label="修改" fontSize="16"/> <mx:Button width="98" height="31" click="delNote();" x="374" y="521" label="删除" fontSize="16"/> <mx:TextArea text="您选择的节点: {selectedNode.@label}" x="576" y="207" height="206" width="261"/> <mx:Text x="576" y="482" text="节点名称" fontSize="14" fontWeight="bold"/> <mx:TextInput id="nodeName" x="660" y="479" fontSize="16"/> </mx:Application>
package hessian.service { import mx.rpc.AsyncToken; import mx.controls.Alert; import hessian.client.HessianService; public class FlexTestService extends BaseService { private static var _userService : HessianService; //调用java端服务,调用的方法名要与java端服务接口名一致 protected static function getFlexTestService():HessianService { if (!_userService) { _userService = new HessianService("http://localhost/remoting/testService"); } return _userService; } public function FlexTestService(resultCallback:Function = null, faultCallback:Function = null) { super(resultCallback, faultCallback); } //获得tree数据 public function getTree():void { var token:AsyncToken = getFlexTestService().getTree.send(); token.addResponder(this); } //增加节点 public function addNote(sid:String, name:String):void { var token:AsyncToken = getFlexTestService().addNode.send(sid, name); token.addResponder(this); } //删除节点 public function delNote(sid:String):void { var token:AsyncToken = getFlexTestService().delNode.send(sid); token.addResponder(this); } //更新节点 public function updateNote(sid:String, name:String):void { var token:AsyncToken = getFlexTestService().updateNode.send(sid, name); token.addResponder(this); } } }
package net.shopin.api; import net.shopin.view.CatalogVO; import java.util.List; public interface TestService { /** * 获取所有节点 * @return */ String getTree(); /** * 增加节点 * @return */ String addNode(String sid,String name); /** * 删除节点 * @return */ String delNode(String sid); /** * 更新节点 * @return */ String updateNode(String sid,String name); }
package net.shopin.business; import com.shopin.modules.orm.hibernate.SimpleHibernateDao; import com.shopin.modules.utils.DozerMapper; import java.util.List; import java.util.ArrayList; import net.shopin.entity.Catalog; import net.shopin.entity.ProductList; import net.shopin.api.TestService; import net.shopin.view.CatalogVO; import org.springframework.transaction.annotation.Transactional; import org.springframework.stereotype.Component; import org.springframework.beans.factory.annotation.Autowired; import org.hibernate.SessionFactory; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.apache.commons.lang.ObjectUtils; @Transactional @Component("testService") public class TestServiceImpl implements TestService { private SimpleHibernateDao<Catalog, Long> testDao; @Autowired public void setSessionFactory(SessionFactory sessionFactory) { testDao = new SimpleHibernateDao<Catalog, Long>(sessionFactory, Catalog.class); } @Transactional(readOnly = true) public String getTree() { Catalog catalog = testDao.findByUnique("sid", Long.parseLong("1")); Criteria criteria = testDao.createCriteria(); criteria.add(Restrictions.eq("fatherNodeId", catalog)); List<Catalog> list = criteria.list(); String tree = listToxml(list); return tree; } private List<Catalog> getSonNode(String sid) { // System.out.println("--------getSonNode-----------"); String hql = "from Catalog as o where o.fatherNodeId = ? "; Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid)); List<Catalog> list = testDao.find(hql, catalog); return list; } //把list对象转化成XML private String listToxml(List flist) { ArrayList list = (ArrayList) flist; String treedata = "<treeRoot>\n"; treedata = CreateXmlNode(list, 1L, treedata); treedata = treedata + "</treeRoot>\n"; // System.out.println(treedata); return treedata; } /** * 通过递归解析list to Xml */ private String CreateXmlNode(List<Catalog> list, Long nodepid, String cratedata) { for (int a = 0; a < list.size(); a++) { Catalog fsort = (Catalog) list.get(a); if ((fsort.getFatherNodeId().getSid().toString()).equals(nodepid.toString())) { List<Catalog> lists = getSonNode(fsort.getSid().toString()); if (lists.size() > 0) { cratedata = cratedata + "<second label=\"" + fsort.getFatherNodeId().getNodeName() + "-" + fsort.getNodeName() + "\" sid=\"" + fsort.getSid() + "\">\n"; cratedata = CreateXmlNode(lists, fsort.getSid(), cratedata); cratedata = cratedata + "</second>\n"; } else { cratedata = cratedata + "<third label=\"" + fsort.getFatherNodeId().getNodeName() + "-" + fsort.getNodeName() + "\" sid=\"" + fsort.getSid() + "\"/>\n"; } } } return cratedata; } public String addNode(String sid, String name) { Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid)); Catalog newCatalog = new Catalog(); newCatalog.setNodeName(name); newCatalog.setFatherNodeId(catalog); testDao.save(newCatalog); String data = getTree(); return data; } public String delNode(String sid) { if (getSonNode(sid).size() > 0) { System.out.println("不可以删除此节点"); } else { String hql = "from Catalog as o where o.sid = ? "; Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid)); testDao.delete(catalog); } String data = getTree(); return data; } public String updateNode(String sid, String name) { String hql = "from Catalog as o where o.sid = ? "; Catalog catalog = testDao.findByUnique("sid", Long.parseLong(sid)); catalog.setNodeName(name); testDao.save(catalog); String data = getTree(); return data; } }
评论
3 楼
caojiapingaccp
2011-09-21
可以用吗
2 楼
emilyHong
2010-05-31
没有dao?
1 楼
lqw8668
2010-01-30
查xmllist,找来找去,找到我自己写的东西了………………
发表评论
-
浏览器前进后退按钮切换状态
2010-06-03 16:22 1525Flex browser manager能够让用户通过浏览器的 ... -
Flex3 Module 模块化 应用程序 开发
2010-05-26 15:40 1194模块(Modules) 模块(Module)是创建大型Fle ... -
OUTERDOCUMENT
2010-05-26 14:38 2451scope 也更改了。我的意思是, 从 <mx:Comp ... -
FLEX module的使用
2010-05-26 14:12 1006用FLEX来开发应用难免不 ... -
flex 加载 swf
2010-01-13 13:24 1215<?xml version="1.0&qu ... -
flex下载文件
2010-01-10 10:14 1257<?xml version="1.0&qu ... -
flex最全的表单验证
2010-01-05 14:50 1155<?xml version="1.0&qu ... -
mxml中动态生成组件
2009-12-28 17:09 1401客户那边的API 返回值如下 <list> ... -
TabNavigator
2009-12-20 23:21 932<?xml version="1.0&qu ... -
flex 打开新页面 窗口最大化
2009-12-14 22:12 2316var args:String = "toolb ... -
Flex中利用ContextMenu和ContextMenuItem类在DataGrid上创建一个自定义右键弹出菜单的例子
2009-12-10 22:49 3488<?xml version="1.0&qu ... -
flex datagrid分页排序失效
2009-12-09 22:04 1752分页改变了datagrid的数据源,数据源变了视图就跟着变了。 ... -
Flex 弹出窗口的例子
2009-12-09 00:44 1483TitleWindowApp.mxml <mx:Ap ... -
带CheckBox和级联操作的Tree
2009-12-08 23:28 2305CSDN上下载的,该Tree是采用XMLList 绑定数据的 ... -
FLEX 构建完美的带有CheckBox三状态的Tree控件
2009-12-08 23:02 7382CheckTree.as package ht.syste ... -
flex blazeds 异步加载tree
2009-12-06 14:48 1536<?xml version="1.0&qu ... -
flex 异步 tree
2009-12-06 14:33 2480例子一 <?xml version="1. ... -
FLEX数据类型和JAVA数据类型对应关系
2009-12-03 22:31 2999类型名 类型描述 Boolean 只有两个值:true 和fa ... -
BlaseDS+Spring 整合配置
2009-11-24 10:54 1222首先到spring网站下载两 ... -
flex blazeDs spring整合
2009-11-24 10:27 14891.新建一个工程Flex_Spring。Ap ...
相关推荐
flex中经常需要xml格式的文件。通过后台asp.net的处理可以将数据库中读取的文件转化为xml格式。这是再传递给前端的flex中的tree控件作为数据源。
Flex Tree 刷新数据源后,重新打开指定节点的解决方案,不需要延迟等其他手段
NULL 博文链接:https://tangdonglai.iteye.com/blog/1478277
Tree——一个使用XML作为Tree组件数据源的小例子
里面收集了一些Flex的tree控件的用法和实例的源代码
flex tree 复选框,以及父目录的三种状态。(全部选中,部分选中,没有选中)
flex tree 教程二
flex tree+checkbox可实现级联勾选
flex 修改 tree的icon,根据数据源root 中不同的参数修改不同的图片。
Flex加载xml数据三种方式:HTTPService XMLLoader XML类
代码组织xml 建立tree 代码组织xml 建立tree
NULL 博文链接:https://piaoyun29.iteye.com/blog/432187
flex tree 拖拽,flex tree 节点移动。
flex读取xml文件的数据的三种方式及其比较
flex带复选框的tree,包含源代码,需要用到的朋友请下载
去掉flex tree控件默认的图标并加上线连接。
在flex中Tree组件的使用。使用XML作为Tree组件的数据源。
就多加了一个判断,因为我用数据源的时候没有state这个属性节点 所以当选中某一个CheckBox,再去掉勾选会出现问题..... 今天用的时候又出现问题了,晕........ 由于数据量较多,CheckBox选择不正常..... 找了一下...
本资源中包括Tree的文件和Tree的渲染文件(Checkbox),实现功能为点击树不获取值(也可以获取,改变一个变量即可),只有勾选Checkbox才能得到。并添加到集合中
flex解析xml