首先引入文件:

<link href="./css/bootstrap.css" rel="stylesheet">
<script src="./js/jquery.js"></script>
<script src="./js/bootstrap-treeview.js"></script>

HTML 结构:

<div id="tree"></div>     //不一定是div元素  其他也可以。在这我用的div演示 
调用插件Treeview方法:

<script>
 $(function () {
$('#tree').treeview({
color: "#428bca",
data: getDept(), //Treeview的数据源 返回json
levels: 4,
onNodeSelected: function (e, m) { //Treeview 被选中事件
var id=m.tags[0]; 
var remark=m.text; 
},
onNodeUnselected: function (e, m) { //Treeview 取消选中事件
}
})
});

</script>

//Treeview数据源方法
function getDept() {

var exc = "";
$.ajax({
type: "post",
url: "@Url.Action("getList", "Home")",
async: false,
datatype: "json",
success: function (data) {
if (!data.result) {

alert("出现异常");
return;
}
exc = data.data;
}
});
return exc;
}


Controllers层:

  public JsonResult getList()
{
////查询列表
IList<TreeView> List = TreeViewService.GetDeptList(-); //最高部门的父id是-1
var jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; //忽略空值
string json = JsonConvert.SerializeObject(List, Formatting.Indented,jSetting);
return Json(new { result = true, data = json });
}

Dal层:

 public static IList<TreeView> GetDeptList(int SuperiorID = )
{
DataTable dt = SqlHelper.FillSqlDataTable("SELECT DeptName AS text,CONVERT(VARCHAR(10),ID)+','+DeptCode+','+ISNULL(Remark,'') AS tags,'' AS href FROM dbo.Sys_Dept WHERE State=0 and SuperiorID=" + SuperiorID); return GetListByTable(dt);
}
//将Datable转成list
private static IList<TreeView> GetListByTable(DataTable dt, int kind = )
{
IList<TreeView> list = new List<TreeView>();
if (dt != null && dt.Rows.Count > )
{
foreach (DataRow row in dt.Rows)
{
TreeView model = new TreeView(); if (row["tags"] != null)
{
model.tags = row["tags"].ToString().Split(',');
}
if (row["text"] != null)
{
model.text = row["text"].ToString();
}
if (dt.Columns.Contains("href") && row["href"].ToString().Trim() != null)
{
model.href = row["href"].ToString();
}
if (kind == )
{
//部门的Treeview
model.nodes = GetDeptList(int.Parse(model.tags[]));
}
if (kind == )
{
//菜单的Treeview
model.nodes = GetMenusList(int.Parse(model.tags[]));
}
list.Add(model);
}
return list;
}
return null;
}

Model 层:

//bootstrap的treeview插件返回数据源json格式必须是下面这样的,所以在写sql语句时就要用 as 重命名字段,往上翻看我的sql语句就会明白。
public class TreeView
{
public string icon { get; set; }
public string text { get; set; }
public string[] tags { get; set; }
public string href { get; set; }
public IList<TreeView> nodes { get; set; }
}

bootstrap的treeview使用方法的更多相关文章

  1. WPF中TreeView.BringIntoView方法的替代方案

    原文:WPF中TreeView.BringIntoView方法的替代方案 WPF中TreeView.BringIntoView方法的替代方案 周银辉 WPF中TreeView.BringIntoVie ...

  2. TreeView 使用方法:(在View.Details模式下)

    1.建立TreeView的標題         2.建立TreeView的Item         3.在TreeView的Item中的建立SubItem                  如果將各部 ...

  3. bootstrap时间区间设置方法

    我们在开发过程中经常有时间区间的要求,在多次"失败"及翻阅资料之后终于找到了适合我的方法,所以给大家分享出来. 基本需求为可以设置时间,设置时间区间,后一时间日期不可提前于前一时间 ...

  4. bootstrap Table的使用方法

    1.官网 url:http://bootstrap-table.wenzhixin.net.cn/zh-cn/documentation/ 文档包含了表格属性.列属性.事件.方法等等. 2.引入库 只 ...

  5. 关于禁用bootstrap响应式解决方法

    前几天接到一个任务,用bootstrap框架写几个静态页面,由于长时间专注于后台开发,所以,花费了3天时间,才终于写完了页面,其中,来回的修改,把遇到的问题说一下. 用bootstarp做完页面后,组 ...

  6. bootstrap的editTable实现方法

    首先下载基于bootstrap的源码到本地.引用相关文件. <link href="/Content/bootstrap/css/bootstrap.min.css" rel ...

  7. 关于bootstrap的treeview不显示多选(复选框)的问题,以及联动选择的问题,外加多选后取值

    最近做项目用到了treeview.因为涉及到多选的问题,很是棘手,于是乎,我决定查看原生JS,探个究竟.需要引用官方的bootstrap-treeview.js都知道吧,对于所需要引用的,我就不多说了 ...

  8. css冲突2 要关闭的css在项目代码以外,但是是通过<link>标签引入的css(例如bootstrap):解决方法,在APP.css中使用全局样式

    css冲突,导致html字体过小. 通过浏览器检查发现,导致字体过小的css来自bootstrap. 现要关闭bootstrap的css: 直接在APP.css中添加: html{ font-size ...

  9. bootstrap的selectpicker的方法

    方法 .selectpicker('val') 您可以通过调用val元素上的方法来设置所选值. 1 2 $('.selectpicker').selectpicker('val', 'Mustard' ...

随机推荐

  1. 验证调用HttpServletResponse.getWriter().close()方法是否真的会关闭http连接

    起因 线上项目突然遭到大量的非法参数攻击,由于历史问题,之前的代码从未对请求参数进行校验. 导致大量请求落到了数据访问层,给应用服务器和数据库都带来了很大压力. 针对这个问题,只能对请求真正到Cont ...

  2. 修改VS 2012调试默认浏览器

    首先用vs打开我们的工程文件,点击任意一个aspx文件,点右键,找到弹出菜单中的“浏览方式”,如图: 然后点击“浏览方式”或者“Browser with”,弹出如图对话框: 

  3. 从零开始学HTTP (一)网络基础

    网络基础 web发展史 下面列出了web发展中几个重要的历史结点 1990年 HTTP/0.9问世(HTTP/0.9含有HTTP1.0之前版本的意思,这时HTTP并未作为标准被公布) CERN(欧洲核 ...

  4. Unicode与UTF8

    举一个例子:It's 知乎日报 你看到的unicode字符集是这样的编码表: I 0049 t 0074 ' 0027 s 0073 0020 知 77e5 乎 4e4e 日 65e5 报 62a5 ...

  5. 【七】zuul路由网关

    一.zuul是什么?zuul 包含以下两个最主要的功能:1.路由功能: 负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.2.过滤器功能: 则负责对请求的处理过程进行干预,是实现请 ...

  6. rabbitMQ学习1:消息队列介绍与rabbitmq安装使用

    1. 什么是消息队列 生活里的消息队列,如同邮局的邮箱, 如果没邮箱的话, 邮件必须找到邮件那个人,递给他,才玩完成,那这个任务会处理的很麻烦,很慢,效率很低 但是如果有了邮箱, 邮件直接丢给邮箱,用 ...

  7. luogu P3244 [HNOI2015]落忆枫音

    传送门 md这题和矩阵树定理没半毛钱关系qwq 首先先不考虑有环,一个\(DAG\)个外向树个数为\(\prod_{i=2}^{n}idg_i(\)就是\(indegree_i)\),因为外向树每个点 ...

  8. 微信小程序总结

    一.基础用法: <navigator url='跳转页面组件'></navigator>用法和a标签差不多 <text></text>文本标签 < ...

  9. 黑客游戏_www.fbisb.com 通关过程

    黑客游戏_www.fbisb.com 首先这个游戏是非常非常基础的. 输入网址 http://www.fbisb.com/youxi/ 来到第一关 ctrl+u查看源码,注意右键不行,因为这段js代码 ...

  10. Solr 7.7.0 部署到Tomcat

    第一步 1.Solr 解压后server/solr-webapp下一个webapp目录,它就是Solr的Web项目,把它复制到tomcat的webapps目录下并改名为solr # 进入Solr的se ...