动态加载dtree.js树treeview(示例代码)


Posted in Javascript onDecember 17, 2013
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Destroydrop » Javascripts » Tree</title>
<link rel="StyleSheet" href="dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
</head>
<body>
<div class="dtree">
<p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'My example tree');
d.add(1,0,'Node 1','example01.html');
d.add(2,0,'Node 2','example01.html');
d.add(3,1,'Node 1.1','example01.html');
d.add(4,0,'Node 3','example01.html');
d.add(5,3,'Node 1.1.1','example01.html');
d.add(6,5,'Node 1.1.1.1','example01.html');
d.add(7,0,'Node 4','example01.html');
d.add(8,1,'Node 1.2','example01.html');
d.add(9,0,'My Pictures','example01.html','Pictures I've taken over the years','','','img/imgfolder.gif');
d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir');
d.add(11,9,'Mom's birthday','example01.html');
d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');
document.write(d);
//-->
</script>
</div>
<p></p>
</body>
</html>

接下来我们可以分析 我们要是想让他动态的生成 我们 要怎么处理

我们可以看到如下代码是生成树的关键:

<div class="dtree">
<p><a href="javascript: d.openAll();">open all</a> | <a href="javascript: d.closeAll();">close all</a></p>
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'My example tree');
d.add(1,0,'Node 1','example01.html');
d.add(2,0,'Node 2','example01.html');
d.add(3,1,'Node 1.1','example01.html');
d.add(4,0,'Node 3','example01.html');
d.add(5,3,'Node 1.1.1','example01.html');
d.add(6,5,'Node 1.1.1.1','example01.html');
d.add(7,0,'Node 4','example01.html');
d.add(8,1,'Node 1.2','example01.html');
d.add(9,0,'My Pictures','example01.html','Pictures I've taken over the years','','','img/imgfolder.gif');
d.add(10,9,'The trip to Iceland','example01.html','Pictures of Gullfoss and Geysir');
d.add(11,9,'Mom's birthday','example01.html');
d.add(12,0,'Recycle Bin','example01.html','','','img/trash.gif');
document.write(d);
//-->
</script>
</div>

我们是不是可以把上面的代码写到.cs文件里面呢! 是可以的

首先我们必须在数据库建立一张表

我们看下其实这里的这么多表字段 个人觉得 pid子节点(如果是0那么就是根节点,1子节点,3子节点的子节点) name要显示的名称 url连接地址 title标题 icon关闭图片的路径 iconopen打开图片的路径 这里不详细介绍了 大家可以试下 我们最主要的就是根据username 进行判断 大家也可以是把username换成是引用的字段 我这里只是一个测试的所以就用了个字符串类型 下面我们来动态加载treeview

首先我们建立一个数据库连接类返回一个Dataset类型 我是个人喜欢你们也可以直接返回一个DataTable

private DataSet GetDt(string username)
{
string strConn="server=ZHOUYUN;database=Mytest;uid=sa;pwd=123456";
SqlConnection conn = new SqlConnection(strConn);
string strSql = string.Format("
select * from treeview where username='{0}'",username);
SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}

然后我们把先我们生成书的js放到.cs文件里面来 非常关键的一个就是注意.js文件的倒入 和 .css文件的倒入 我们可以用到Page.hearder.innerHTMl=""你要倒入的文件名

我们来看代码

public void treeview()
{
//实力化一个长字符串类型
StringBuilder strbu = new StringBuilder();
//我们在生成一个保留静态文本的位置的类
Literal lit = new Literal();
//这里就是我们刚才提到的要把.js和.cs文件倒入的位置
//page.Header.InnerHtml的意思就是把这段文件引用放到html标签里的
// <head>这个之间</head>
Page.Header.InnerHtml = @"<
link rel='StyleSheet' href='dtree.css' type='text/css'/>
<script type='text/javascript' src='dtree.js'></script>";//倒入结束
string username = "zhangsan";
DataSet ds = GetDt(username.Trim());
DataTable dt = ds.Tables[0];
//我们现在开始把js文件放到长字符串类型里面
strbu.Append(@"<div class='dtree'>
<p><a href='javascript: d.openAll();'>open all</a> | 
<a href='javascript: d.closeAll();'>close all</a></p>
<script type='text/javascript'>
<!--
d = new dTree('d');
d.add(0,-1,'My example tree');");//这里结束一段长字符穿类型
// 我们开始循环DataTable
for (int i = 1; i < dt.Rows.Count; i++)
{
//我们又开始添加长文件类型 大家这里注意了拼接字符穿
//的时候要仔细点
strbu.Append(@"
d.add(" + i + "," + dt.Rows["pid"] + ",'" +
dt.Rows["name"] + "','" + 
dt.Rows["url"] + "','" + 
dt.Rows["target"] + "','" + 
dt.Rows["icon"] + "','"+
dt.Rows["iconopen"]+"');");
}
//再次添加长文件类型
strbu.Append(@"document.write(d);
-->
</script>
</div> "); //长文件类型添加结束
//现在我们保留静态文本的text值就等于 我们刚才的长文件类型的值
lit.Text = Convert.ToString(strbu);
//那么我们在想 我怎么把个段文本放到<body>
//<form>这个位置呢</form><boy>
form1.InnerHtml = "";
//我们可以直接从.cs文件里面获得form1然后.Controls.Add()
//他只能放静态文本所以我们把刚才长文件类型的值赋给了静态文本
//那么我们这里也就可以直接添加进来了
form1.Controls.Add(lit);
}

Javascript 相关文章推荐
js 学习笔记(三)
Dec 29 Javascript
js 单击式的下拉菜单效果实例
Aug 13 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
Feb 19 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
Jquery常用的方法汇总
Sep 01 Javascript
Node.js读取文件内容示例
Mar 07 Javascript
JavaScript的继承实现小结
May 07 Javascript
用 js 写一个 js 解释器过程详解
Aug 02 Javascript
vue实现行列转换的一种方法
Aug 06 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 #Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 #Javascript
js捕获鼠标滚轮事件代码
Dec 16 #Javascript
javascript调试过程中找不到哪里出错的可能原因
Dec 16 #Javascript
使用firebug进行调试javascript的示例
Dec 16 #Javascript
javascript和jquery修改a标签的href属性
Dec 16 #Javascript
JavaScript修改css样式style动态改变元素样式
Dec 16 #Javascript
You might like
用PHP 4.2书写安全的脚本
2006/10/09 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
一秒学会微信小程序制作table表格
2019/02/14 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
React实现todolist功能
2020/12/28 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
Python使用struct处理二进制的实例详解
2017/09/11 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
就业推荐自我鉴定
2013/10/06 职场文书
海底两万里读书笔记
2015/06/26 职场文书
Python的property属性详细讲解
2022/04/11 Python
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle