`
captain
  • 浏览: 135046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

关于树型结构返回值,大家都是怎么组织的呢

阅读更多
直入正题,目前公司树形组件基于jquery的simple tree(http://news.kg/wp-content/uploads/tree/)扩展而成,基于后端的xml格式
		<menuitem id="11" class="menumain" text="samples" action="samples/gettingstart/forward.do">	
			<!-- qucik start-->
			<menuitem menuid="gettingstart"  text="sample.getting.start" action="samples/gettingstart/forward.do" contextmenu="true">
			
					<menuitem menuid="forward" text="sample.getting.start.forward" action="samples/gettingstart/forward.do" contextmenu="true">
					</menuitem>
					<menuitem menuid="helloworld" text="sample.getting.start.helloworld" action="samples/gettingstart/hello.do" contextmenu="true">
					</menuitem>
					<menuitem menuid="simpleCRUD" text="sample.getting.start.simpleCRUD" action="samples/gettingstart/message.do" contextmenu="true">
					</menuitem>
			</menuitem>
		
			<!-- advanced app -->
			<menuitem menuid="advancedused" text="sample.advanced.used" action="samples/subject/message.do?method=doList">
					<menuitem menuid="dispatchCRUD" text="sample.advanced.used.dispatchCRUD" action="samples/subject/message.do?method=doList">
					</menuitem>
					<menuitem menuid="editable" text="sample.advanced.used.editable" action="samples/subject/editable.do">
					</menuitem>

			</menuitem>
		</menuitem>

生成到前端后,对树进行一系列操作(拖拽、增加、删除、修改等),然后通过一个保存按钮将当前的树形结构同步回后端(可能基于xml,也可能存回数据库),问题出在如何返回修改后的树,目前想到两种方案,一种是记录每一步操作,封装成一个array往后台传,例如第一步先删除节点a,第二步将节点b移动到节点c下,等等,缺点是如果我进行了过多操作,这数据量会不会太大?第二种方案比较笨,也是目前想采用的方法,就是得到当前simpletree对象的引用,用js取得其html(一堆嵌套的<ul><li>组合),然后通过正则表达式将其替换成原来的xml格式后返回,不知道大家对于这样的业务场景一般怎么处理的?
  • 大小: 9.1 KB
分享到:
评论
5 楼 w7180121 2008-12-27  
你的例子能不能传上来?
4 楼 captain 2008-12-26  
用json数据保存操作,遇到如何解决垃圾操作问题(比如我给某节点添加一叶子,然后删了,再添加,再删,如此反复,到最后其实我啥也没干,但是操作数却急剧上升)。
   暂时考虑的是先记录,然后按照一定的清理规则重新洗一遍json中的“脏操作”,比如对同一id的增加和删除相当于没做任何操作,连续修改同一节点n次取最后一次值等等。
   还望je高人能提出更好的办法。
3 楼 captain 2008-12-26  
srdrm 写道
我用的是 treeview 插件

http://bassistance.de/jquery-plugins/jquery-plugin-treeview/

恩,用哪个plugin来组织数据其实大同小异,关键是遇到实际业务需求时,怎样对所用的进行二次定制,目前我们对tree节点批量操作还是采用返回json的方式,定义del,add,mov,dnd四种操作类型。
2 楼 hxr010 2008-12-26  
刚开始学习jQuery,不大懂什么意思
1 楼 srdrm 2008-12-25  
我用的是 treeview 插件

http://bassistance.de/jquery-plugins/jquery-plugin-treeview/

相关推荐

    易语言打造资源管理器源码 树型框+超级列表框例程

    本资源是一个使用易语言编写的资源管理器源码,其中包含了树型框和超级列表框的实现,这些都是在Windows应用开发中常见的界面元素。 树型框(Tree View)是Windows应用程序中常用于展示层次结构数据的控件,例如...

    易语言设置树型框连线颜色

    树型框是常见的一种控件,它通常用于显示层次结构的数据,比如文件系统或者组织结构。在树型框中,各个节点之间通过连线表示它们的父子关系。而本主题讨论的是如何改变这些连线的颜色,以达到个性化或高亮显示的目的...

    易语言使用API改变树型框背景颜色

    树型框是用户界面中常见的一种控件,它通常用于展示层次结构的数据。在易语言中,我们可以通过API函数来修改其默认属性,包括背景颜色。API函数通常是用C语言编写的,它们在操作系统层面提供服务,因此可以访问到...

    《数据结构与算法(C语言版)》课后习题答案.pdf

    集合是无序的,线性结构如数组和链表是线性的,树型结构如二叉树和多叉树,图形结构则包含节点和边的关系。 - **存储方式**:主要有顺序存储和链式存储。顺序存储如数组,数据按照特定顺序在内存中连续存放;链式...

    jQuery树型标签选择插件 tagTree

    该控件是基于jquery库开发的,所以使用前,必需引入这些库。... 该控件是一个树型选择器,支持多选单选,并返回值。 也可以到我的github下载支持下,谢谢! https://github.com/miracleren/tagTree

    数据结构中数与二叉树的相关知识汇总

    树型结构与线性结构的比较: - 线性结构如数组或链表,每个元素有一个前驱和一个后继,而树结构中除了根节点外,其他节点通常有多个后继(子节点)。 - 树结构允许更复杂的数据关系,而线性结构更适合简单的线性序列...

    数据结构与算法分析实验报告.doc

    (输出以存储结构表示或以树型显示(90度旋转)) 需求分析 1. 输入数据必须为int的整形数据,其数值范围为:-~47 2. 输出的数据格式为:%d 3. 测试数据的数据为:{7,19,2,6,32,3} 详细设计 1. 该程序采用顺序表的...

    通用填充树型框模块-易语言

    树型框(Tree View)是一种图形用户界面元素,它可以展示层次化的数据结构,就像一棵倒置的树,其中每个节点可以有多个子节点。在易语言中,创建这样的控件需要一定的技巧和理解。通用填充树型框模块则提供了一种...

    易语言树型框API加入项目模块源码-易语言

    在易语言中,“树型框”是一种常用的控件,用于显示层次结构的数据,常用于文件系统、目录结构或组织结构的展示。API(Application Programming Interface)则是操作系统或库提供的函数调用接口,程序员通过调用这些...

    使用API改变树型框背景颜色-易语言

    树型框是一种常见的图形用户界面控件,通常用于显示层次结构的数据。 首先,我们需要了解易语言中的API调用语法。在易语言中,API调用通常使用“调用”命令,并且需要指定API函数的名称、参数类型和参数值。例如,...

    易语言-sqlite数据库基本操作+无限级别树型框

    在"易语言-sqlite数据库基本操作+无限级别树型框"这个主题中,我们将探讨如何使用易语言进行SQLite数据库的基本操作,并构建一个可以显示无限级别树形结构的界面组件。 SQLite是一个轻量级的、自包含的、无服务器的...

    考研辅导之C语言

    特别是对于武汉科技大学计算机专业的考生,由于考试可能涉及到数据结构的相关内容,如链表、树型结构等,因此在准备C语言的同时,复习数据结构也是必不可少的。通过深入理解和实践,考生可以更好地应对考研中的C语言...

    c++实现linux下ls命令

    Linux文件系统是一个树型结构,以/为根目录,包括普通文件、目录文件、链接文件、设备文件、管道文件等几种类型。目录文件的内容是一个列表,包括它所包含的所有文件和子目录的名称。 为了实现ls命令,需要使用到...

    数据结构与算法分析》实验报告.doc

    (输出以存储结构表示或以树型显示(90度旋转)) 需求分析 1. 输入数据必须为int的整形数据,其数值范围为:-~47 2. 输出的数据格式为:%d 3. 测试数据的数据为:{7,19,2,6,32,3} 详细设计 1. 该程序采用顺序表的...

    CTree类使用的一个小范例

    这通常通过HTREEITEM类型的返回值的InsertItem函数完成,该函数接受多种参数,包括父节点、文本、图像索引等。例如,我们可以在OnInitDialog之后添加一些初始的树节点: ```cpp // 创建根节点 HTREEITEM hRoot = m_...

    2021-2022计算机二级等级考试试题及答案No.13998.docx

    21. 网络分类:按照网络拓扑结构,网络可分为总线网、环型网、星型网、树型网和网状网。 22. 获取当前日期和时间:在许多编程语言中,`Date`函数返回当前日期,而`Now`函数返回当前日期和时间。 23. Windows控制...

    2021-2022计算机二级等级考试试题及答案No.2572.docx

    4. 数据库描述:数据库是一个存储数据的容器,提供了一种结构化的方式来组织数据。扩展名`.DBC`通常用于FoxPro数据库,而数据库表的表设计器和自由表的表设计器可能会有所不同,但数据库表的记录通常不直接保存在...

    2021-2022计算机二级等级考试试题及答案No.17903.docx

    12. 网络分类中的总线网、环型网、星型网、树型网和网状网是根据网络拓扑结构来区分的。 13. Word窗口的状态栏显示当前编辑位置、时间和状态信息,提供工作反馈。 14. 实参和形参之间的关系,在函数调用时,如果...

    2021-2022计算机二级等级考试试题及答案No.2904.docx

    19. **网络分类**:根据网络拓扑结构,网络可以分为总线网、环型网、星型网、树型网和网状网,答案是A。 20. **JavaScript嵌入HTML**:在HTML中嵌入JavaScript的标记是`&lt;script&gt;`,答案是A。 21. **多文档切换**:...

    UML复习题完整版

    27. **递归层次/树型结构**:Composite模式在Lexi系统中得以应用,因为文档元素之间存在层次关系。 填空题关键点: 1. 软件体系结构描述了系统的组成元素及它们的交互协作,不涉及活动细节和开发过程。 2. UML模型...

Global site tag (gtag.js) - Google Analytics