`
lgsun592
  • 浏览: 54659 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如果不用第三方控件,做一个树形菜单有多难?

阅读更多

写在前面:如果是我自己做东西,我不喜欢使用第三方控件,喜欢"闭门造车",当然在我的车快造好了,or造不下去了的时候我还是会打开那扇关闭的门的

 

首先,建一个数据表(Oracle 11g)

 

CREATE TABLE wb_terms (
  id          INTEGER       NOT NULL,
  "NAME"        VARCHAR2(200) NOT NULL,
  parent      INTEGER       DEFAULT 0 NOT NULL
)

 

 插入几条测试数据,如下:



 
后台采用递归查询,想办法将数据返回到前台

 

SELECT 
  t.*
FROM 
  WB_TERMS t
START WITH 
  t.id=0 
CONNECT BY NOCYCLE PRIOR 
  t.id=t.parent
ORDER SIBLINGS BY t.id ASC

 

 重点是前台js,首先要确保在前台页面中包含如下内容

 

 <div id="category_inside" class="inside">

 

 就是一个空 div,呵呵

 

var categoryDiv = "#category_inside";
    $(categoryDiv).html("loading...");
	// 此处采用jquery ajax获得数据,当然你可以使用你喜欢的任何方式
    $.get('your_url', null, function (data, textStatus) {
        $(categoryDiv).html('');
		/*data.successList为后台返回的数据集合*/
        $.each(data.successList, function(key, value) {
            if ($(categoryDiv).html().trim() == '') {
                $(categoryDiv).append("<ul id='id_" + value.parent + "'></ul>");
            } else if ($(categoryDiv + " ul[id=id_" + value.parent + "]").size() == 0) {
                $(categoryDiv + " li[id=id_" + value.parent + "]").append("<ul id='id_" + value.parent + "'></ul>");
            }

            $(categoryDiv + " ul[id=id_" + value.parent + "]").append("<li id='id_" + value.id + "'><label><input type='checkbox' id='" + value.id + "' value='" + value.name + "' name='category'/>" + value.name + "</label></li>");
        });
    });
 

 

最后再附赠一个CSS

 

#category_inside {
    width: auto;
    margin: 10px;
    padding-left: 10px;
    background-color: #FFFFFF;
    border: 1px solid #DFDFDF;
}

ul {
    list-style-type: none;
    padding: 0;
}

li ul {
    padding-left: 20px;
    padding-top: 0;
    padding-bottom: 0;
}

li label input[type="checkbox"] {
    margin-right: 10px;
}

 最终效果如下:


为了实现此树形菜单总共使用了8行js代码,而且其中2行还完全是由括号组成的,反正我感觉挺简单的,你呢?

  • 大小: 10.7 KB
  • 大小: 17 KB
分享到:
评论

相关推荐

    C#WinForm美化第三方控件

    "C#WinForm美化第三方控件"是一个专为提升WinForm应用程序界面美观度的专题,它涉及到了C#中对WinForm控件的自定义和美化,以及利用第三方控件来增强用户体验。 首先,WinForm是.NET Framework中的一个窗口应用程序...

    C# winform 第三方控件

    第三方控件的优势主要体现在以下几个方面: 1. 功能丰富:第三方控件往往拥有更高级的功能,比如数据可视化、拖放支持、多语言支持等,这些是标准控件所不具备的。 2. 用户体验:第三方控件通常设计得更为美观,...

    免费的VB 第三方控件大全 rar

    本资源"免费的VB 第三方控件大全 rar"收集了一系列适用于VB开发的实用控件,旨在帮助开发者提高编程效率,实现更复杂的交互效果。 首先,我们来看"按钮标签类",这可能包含了各种定制的按钮和标签控件。在VB中,...

    树形展开的C#树形菜单控件(Treeview示例)

    综上所述,通过理解`TreeView`控件的基本原理和属性,我们可以创建一个可展开的C#树形菜单。结合数据库或其他数据源,我们可以轻松地生成动态的、层次分明的菜单结构,这在ASP.NET应用程序中非常常见,特别是在构建...

    C MFC第三方控件

    MFC 第三方控件, 可以美化界面!!!

    C#界面美化第三方控件(内含皮肤、面板等多个第三方控件)

    描述中提到的"内含皮肤、面板等多个第三方控件"意味着这个包提供了多样的界面元素,如皮肤可以改变控件的外观,使其与应用的整体风格保持一致;而面板(Panel)控件则常用于组织和布局其他控件,可以提供一个容器来...

    微软asp.net树形菜单控件中文版.rar

    "微软asp.net树形菜单控件中文版.rar"是一个压缩包,包含了用于在ASP.NET环境中创建和操作树形菜单的中文资源。 树形菜单控件在ASP.NET中的实现通常基于服务器端控件模型。这些控件可以在客户端和服务器端交互,...

    运行于C#的树形菜单控件

    在C#编程环境中,树形菜单控件是一种常用的UI元素,它用于呈现具有层次结构的数据。这个控件在用户界面设计中特别有用,因为它能够清晰地展示数据的分类和子分类,使用户能够轻松地浏览和操作这些数据。在本篇内容中...

    LabVIEW中树形控件的基本操作

    树形控件通常呈现出多个层级的节点,每个节点可以有子节点,这使得它非常适合用来展示具有层次关系的信息。 配置树形控件涉及以下几个关键步骤: 1. **设置节点属性**:双击树形控件打开属性对话框,可以设置节点...

    C# 的第三方控件(打包)

    1. **皮肤与界面美化**:在"Skin+C#界面美化第三方控件"中,你可以找到一系列专门用于界面设计的组件。这些控件通常提供了多种预设皮肤,可以快速改变应用程序的外观,使其更加吸引用户。它们可能包括自定义的按钮、...

    安卓树形控件相关-LinearLayoutTextView树形菜单.rar

    在Android开发中,树形控件是一种常见的UI组件,它以层次结构的形式展示数据,常用于文件系统、组织结构或导航菜单等场景。...然而,在处理复杂或大规模的树形数据时,推荐使用专门为树形控件设计的第三方库。

    javascript-tree控件集合 大部分JS树形菜单控件 精心收集

    在给定的标题和描述中,我们看到提到了多个JavaScript实现的树形菜单控件,如dtree、无限级树状菜单、struts+h ibernate树形菜单、treeview、xmltree以及dhtmltree等。接下来,我们将深入探讨这些控件及其在实际应用...

    JS树形菜单控件-代码-示例

    标题与描述概述的知识点是关于JavaScript(JS)树形菜单控件的代码示例,强调其简单性和易用性。这种控件在Web开发中非常常见,用于展示具有层次结构的数据,例如文件系统、组织结构或任何有层级关系的信息。 ### ...

    安卓树形控件相关-Android树形菜单想有几级就几级.rar

    在资源包中的“Android 树形菜单(想有几级就几级)”,可能包含了一个自定义的树形控件实现,允许开发者根据需求创建任意级别的树形菜单。 要理解这个树形菜单的工作原理,我们首先需要了解几个关键概念: 1. **...

    水平树 Treeview自定义高级控件 菜单分级树形

    本文将深入探讨“水平树 Treeview自定义高级控件 菜单分级树形”的概念,以及如何在C#环境中实现这一功能。 `TreeView`控件通常以垂直布局显示数据,每一级节点可以通过展开或折叠来展示其子节点。然而,“水平树”...

    源代码,QT第三方控件

    标签"QT 控件"进一步强调了这个资源与QT库中的控件有关,无论是官方的还是第三方的,都与构建QT应用程序的界面元素紧密相关。 在压缩包子文件的文件名称列表中,虽然没有具体的文件名,但可以推测其中可能包含了一...

    树形控件拖曳放置及移动_labview_labview树形控件_树形控件(tree)

    1. 添加树形控件:首先,我们需要在LabVIEW的前面板上添加一个树形控件。这可以通过打开“函数选板”(Function Palette),在“用户界面”(User Interface)类别下找到“树形控件”(Tree Control),然后将其拖放...

    非常好用的vb树形控件 找了好久的

    7. **axTree控件**:`axTree`可能指的是第三方控件,这些控件通常提供了更多的功能和更好的性能,但使用前需要先安装相应的控件库,并且其API和标准VB TreeView控件可能会有所不同。 在"Projects"这个文件夹中,...

    基于C++树形菜单控件源代码

    树形控件的核心结构是树形数据结构,通常采用二叉树或多叉树的形式,其中每个节点都有一个唯一的标识,可能包含数据,并可以有零个或多个子节点。在C++中,可以通过自定义类来表示树节点,包含必要的数据成员和方法...

    html树形菜单

    通常使用`&lt;ul&gt;`和`&lt;li&gt;`标签来表示层次,其中`&lt;li&gt;`包含子菜单时会有一个`&lt;ul&gt;`作为子节点。例如: ```html 菜单项1 子菜单项1.1 子菜单项1.2 菜单项2 菜单项3 ``` 2. **CSS美化**: 使用CSS...

Global site tag (gtag.js) - Google Analytics