树形和仿树形下拉框
来源:互联网 发布:淘宝店主回复好评 编辑:程序博客网 时间:2024/06/05 01:01
一般来说树形下拉框是这样的
接收的数据格式是这样的 id-pid-children模式
上面这中数据格式可以这样子来
var jsonDB = [
{ id: 1, pid: 0, name: "XX公司" },
{ id: 2, pid: 1, name: "人事部" },
{ id: 3, pid: 1, name: "行政部" },
{ id: 4, pid: 1, name: "开发部" },
{ id: 5, pid: 4, name: "开发小组1" },
{ id: 6, pid: 4, name: "开发小组2" },
{ id: 7, pid: 4, name: "开发小组3" },
{ id: 8, pid: 7, name: "开发小组3单小弟" },
{ id: 9, pid: 7, name: "开发小组3单小弟" }
];
var data= arrayToTree(jsonDB, "id", "pid")
//将ID、ParentID这种数据格式转换为树格式
function arrayToTree(data, id, pid)
{
if (!data || !data.length) return [];
var targetData = []; //存储数据的容器(返回)
var records = {};
var itemLength = data.length; //数据集合的个数
for (var i = 0; i < itemLength; i++) {
var o = data[i];
records[o[id]] = o;
}
for (var i = 0; i < itemLength; i++) {
var currentData = data[i];
var parentData = records[currentData[pid]];
if (!parentData) {
targetData.push(currentData);
continue;
}
parentData.children = parentData.children || [];
parentData.children.push(currentData);
}
return targetData;
}
而 仿树形下拉是这样的
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>
<script type="text/javascript">
$(function () {
var jsonDB = [
{ id: 1, pid: 0, name: "XX公司" },
{ id: 2, pid: 1, name: "人事部" },
{ id: 3, pid: 1, name: "行政部" },
{ id: 4, pid: 1, name: "开发部" },
{ id: 5, pid: 4, name: "开发小组1" },
{ id: 6, pid: 4, name: "开发小组2" },
{ id: 7, pid: 4, name: "开发小组3" },
{ id: 8, pid: 7, name: "开发小组3单小弟" },
{ id: 9, pid: 7, name: "开发小组3单小弟" }
];
var data1 = [];
var data2 = arrayToTree(jsonDB, "id", "pid", data1);
for (var i = 0; i < data1.length; i++)
{
$("#demo").append("<option value=\"" + data1[i].id + "\">" + data1[i].name + "</option>");
}
});
//将ID、ParentID这种数据格式转换为树格式
function arrayToTree(data, id, pid,data2) {
if (!data || !data.length) return [];
var targetData = []; //存储数据的容器(返回)
var records = {};
var itemLength = data.length; //数据集合的个数
for (var i = 0; i < itemLength; i++) {
var o = data[i];
records[o[id]] = o;
}
for (var i = 0; i < itemLength; i++) {
var currentData = data[i];
var parentData = records[currentData[pid]];
if (!parentData) {
currentData["prefix"] = "|--";
//alert(currentData["name"]);
data2.push(currentData);
currentData["name"] = currentData["prefix"] + currentData["name"];
targetData.push(currentData);
continue;
}
currentData["prefix"] = parentData["prefix"] + "|--";
//alert(currentData["prefix"]);
parentData.children = parentData.children || [];
parentData.children.push(currentData);
currentData["name"] = currentData["prefix"] + currentData["name"];
data2.push(currentData);
}
return targetData;
}
</script>
</asp:Content>
- 树形和仿树形下拉框
- Ext TreeCombo 树形 下拉框,树形下拉框,EXT树形
- 树形下拉框------PHP
- 树形下拉框
- 树形下拉框
- extjs树形下拉框
- JavaScript树形下拉框
- extjs树形下拉框
- Ext 树形的下拉框
- 下拉框绑定树形结构
- 下拉框,树形组合控件
- 下拉框实现树形效果
- 树形检索下拉选择框
- 绑定树形结构的下拉框
- 利用dtree来实现树形下拉框。
- flex下的树形下拉框treecombobox
- flex下的树形下拉框treecombobox
- 树形控件,下拉框,listbox的用法
- python数据分析2:双色球 蓝红球分析统计
- Tomcat使用Log4j输出catalina.out日志
- 迄今见过的最好的职业规划文章
- skiplist跳表
- angularjs实现地址的三级联动
- 树形和仿树形下拉框
- 软件开发所经历的生命周期
- 15个必须知道的chrome开发者技巧(GIF)
- 网络优化步骤
- IntentService 详解
- Spring4报org.aopalliance.intercept.MethodInterceptor问题解决方法
- 关于安卓调试桥adb.exe被金山wps软件导致冲突问题。
- const volatile同时限定一个类型int a = 10
- reality editor MIT黑科技