Truly
写精彩代码 品暇逸人生
博客园
首页
新随笔
新文章
联系
订阅
管理
posts - 92,comments - 309,trackbacks - 46
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(17)
给我留言
查看留言
我参与的团队
ASP.NET AJAX (Atlas)学习(0/1347)
随笔分类
Asp.Net(27)
C#(9)
Cutting Edge(4)
General(2)
Java(1)
JavaScript & Vbscript(43)
Other(6)
Performance(7)
WebService(3)
网站性能优化之网页加速系列(9)
随笔档案
2007年8月 (5)
2007年7月 (10)
2007年4月 (2)
2007年3月 (2)
2007年2月 (1)
2007年1月 (4)
2006年12月 (5)
2006年11月 (15)
2006年10月 (2)
2006年9月 (5)
2006年8月 (1)
2006年7月 (1)
2006年6月 (5)
2006年5月 (2)
2006年4月 (11)
2006年3月 (1)
2006年2月 (1)
2005年12月 (1)
2005年11月 (2)
2005年10月 (2)
2005年9月 (2)
2005年8月 (8)
相册
aspnet20_dataaccess
aspnet20_dataaccess_20
Demo
JavaScript_Pattern
Sandcastle
最新随笔
1. 继续完善SandCastle
2. 使用SandCastle和ScriptDoc创建JavaScript文档
3. 关于.NET的异常处理的几个误区
4. JavaScript实现自定义事件
5. JavaScript面向对象之属性实现
6. JavaScript随笔一篇
7. 设计模式在JavaScript中的应用(2) -- Observer
8. 关于JavaScript的“+”运算和“-”运算和三目操作符“?:”
9. 微软ASP.NET AJAX中日期类型的JSON处理
10. JavaScript面向对象之方法重载
11. 谁动了我的奶酪?
12. 设计模式在JavaScript中的应用(1)
13. 在JavaScript中使用面向对象
14. 对于Asp.Net 2.0中脚本资源的研究(2)
15. 对于Asp.Net 2.0中脚本资源的研究(1)
16. js功能类库放送(二) 调整大小库
17. js功能类库放送(一) 拖动功能库
18. 支持闰月的正则
19. 无刷新省地市菜单
20. C# 编码规范
最新评论
1. re: AjaxPro框架剖析
希望您继续写完,期待着
--zhoufengli
2. re: 深入浅出JSON
确实简单易懂hao!
--jsp
3. re: JavaScript面向对象之属性实现
1)"只能使用在function方式中定义的方法对私有成员访问,而无法在prototype方式定义的方法中访问"这是错误的,是可以的。2)function Person(name,...
--韩羽
4. re: JavaScript随笔一篇
非常感谢,新浪的一堆代码,看了半天看不懂,多亏了楼主的源码才让我明白是怎么回事~
--路人丙
5. re: Asp.Net多附件上传
谢谢.
--无忧浪子
阅读排行榜
1. ASP.NET 2.0中的数据操作:给新增、编辑界面增加验证控件 (翻译)(9381)
2. ASP.NET 2.0中的数据操作系列教程:定制数据修改界面(8383)
3. 深入浅出JSON(7419)
4. 无刷新联动菜单(7387)
5. 命令行编译工具NMAKE(6029)
评论排行榜
1. 无刷新联动菜单(34)
2. 深入浅出JSON(26)
3. 在JavaScript中使用面向对象(25)
4. Microsoft ASP.NET AJAX 使用客户端调用服务器端的方法(24)
5. JavaScript面向对象之属性实现(16)
无刷新联动菜单
分析网上常见的几种联动菜单算法后,对复杂度和效率以及空间进行了折衷。
1. 静态联动,适合于不经常更新的数据,比如省市联动菜单
2. 数据绑定,使用数据源进行绑定显示。
a. DataSet/DataTable/DataCollect 数据源
b. XML数据源
3.xmlhttp读取xml文件或webservice加载数据
目前已完成静态联动的模型和简单制作脚本,有兴趣的可以将其封装为DotNet控件。
上面是静态的Demo,下面可以动态生成一个简单的Demo。
注:
因为生成Script的Script没有优化,并使用了递归,所以推荐生成2-7级的demo,过大的话会导致IE失去响应!但是生成出来的Script没有问题,性能良好。
注2:很遗憾没有用锯齿数组做demo:<.生成的Script有两部分,上面部分的script是数据定义和函数定义,实际使用时将其置于一个js中,页面中只须保留第2个script段。这样可以大大减小级别多时select中option所占用的字节数,减少页面的传输压力。
请输入你想要的级数
posted on 2005-08-11 03:37
Truly
阅读(7387)
评论(34)
编辑
收藏
所属分类:
JavaScript & Vbscript
FeedBack:
#1楼
2005-08-11 07:55 |
zitiger
非常棒,收藏了,哈哈
回复
引用
查看
#2楼
2005-08-11 08:27 |
二十四画生
不错,有用!
回复
引用
查看
#3楼
2005-08-11 10:33 |
chengulv
看样多很不错, 先收藏了, 再慢慢分析。
回复
引用
查看
#4楼
2005-08-11 12:02 |
myrat
不是我打击你,只支持ie不支持firefox等再好也没用啊
回复
引用
查看
#5楼
2005-08-11 15:03 |
Truly
是的,现在只对ie提供支持,而且只对ie6进行了完整测试。
nascape和firefox的支持需要修改个别语句。
事实上,该菜单我并没有实际需要,只是希望给大家提供一个思路和完整的模型,有兴趣有需要的完全可以自己改呀,代码比较的简单,只做了少量注释。
回复
引用
查看
#6楼
[
楼主
]
2005-08-11 15:21 |
Truly
为了控制代码的行数及可读性,去掉了通过text或value定位的代码,只通过index定位。需要的可以自行添加
回复
引用
查看
#7楼
2005-08-11 23:50 |
alittlefish
good!
回复
引用
查看
#8楼
2005-08-30 16:30 |
steven [未注册用户]
要兼容nascape和firefox,应该要修改哪些地方呢?
回复
引用
#9楼
2005-09-12 19:01 |
徐灿钊Asp.net专栏
做的很好,值得学习
回复
引用
查看
#10楼
2005-09-28 16:25 |
tree [未注册用户]
若每级数据量大且级联多的话,网络会受不住的
回复
引用
#11楼
2005-09-28 16:31 |
Truly
一旦数据下载完成,每次选择时的计算是在本地计算完成的,依赖于本地的计算机性能,跟网络完全没有关系。而且推荐将数据放入js文件中以缓存。
回复
引用
查看
#12楼
2005-09-28 16:38 |
tree [未注册用户]
我的意思就是数据下载时会很慢,并不是每次选择时慢。
回复
引用
#13楼
[
楼主
]
2005-10-24 12:46 |
Truly
谢谢楼上各位的支持,这里对上面的问题作些解释
关于FireFox,现在已经提供支持。主要的修改部分是document.all->document.getElementById
关于数据量过大的情况,本文篇首已说明,本文所提供的是一种静态情况,对于数据量大的应采用xmlhttp进行动态的数据载入,关于xmlhttp,我的blog上也有几篇文章。
回复
引用
查看
#14楼
2006-01-30 13:48 |
esoutong [未注册用户]
非常感谢斑竹,我根据你的程序+省份证号前6位数字生成的三级联动下拉菜单,超爽呵呵,在此和大家一起共项:)
<Script language="JavaScript">
/****************************************************************
/*
/* Cascading Selection
/*
/* Author: Truly
/* Date: 2005-08-08
/* Ver: 0.1b
/* Web:
http://Truly.cnblogs.com
/* Email: zhuleipro@hotmail.com
/* Modify Author: Esoutong
/* Modify Data: 2006-01-30 00:00:00
/* Author Web:
http://www.esoutong.com
/***************************************************************/
回复
引用
#15楼
2006-01-30 14:15 |
esoutong [未注册用户]
具体地址:
http://www.esoutong.com/sanji.html
回复
引用
#16楼
2006-01-30 14:21 |
esoutong [未注册用户]
再问一下斑竹:
能不能根据
http://www.esoutong.com/sanji.html生成的连动菜单重新生成右拉式菜单
,型如微软的菜单:
http://www.microsoft.com/china/technet/itsolutions/smbiz/mits/default.mspx
回复
引用
#17楼
2006-03-02 15:35 |
liuliu [未注册用户]
强就一个字
回复
引用
#18楼
2006-07-26 10:58 |
wa [未注册用户]
sdf
回复
引用
#19楼
2006-08-27 08:21 |
bjxxgcxy [未注册用户]
太棒了。
楼主,我还想问个问题:
怎么在同一个页面中放2个多级联动菜单?
比如:
地点一:xxx省xxx市xxx县
地点二:xxx省xxx市xxx县
回复
引用
#20楼
2006-08-27 08:21 |
bjxxgcxy [未注册用户]
太棒了。
楼主,我还想问个问题:
怎么在同一个页面中放2个多级联动菜单?
比如:
地点一:xxx省xxx市xxx县
地点二:xxx省xxx市xxx县
回复
引用
#21楼
2006-09-18 17:12 |
xiaoxiao[匿名] [未注册用户]
我想连接数据库, 不知道怎么操作. 可不可以发到我的邮箱里
我不会js 我只要两级的
我的email myaspemail@126.com
谢谢了!
回复
引用
#22楼
2006-10-09 19:27 |
ww[匿名] [未注册用户]
在第一次打开页面的时候,一定是加载速度很慢哦。可以考虑用AJAX。
回复
引用
#23楼
2007-03-15 09:46 |
梦中寻你 [未注册用户]
谢谢楼主,正要这个.
回复
引用
#24楼
2007-04-03 14:42 |
samson [未注册用户]
Truly, 你好,三级联动.我把代码放在一个JS里面调用的.但是我想生成的三个下拉框,不好控制它的属性,比喻点击别的复选框,让它们成不可用状态,或是选择好三个下拉框后直接提交到数据库.不知道怎么做哦.
回复
引用
#25楼
[
楼主
]
2007-04-06 15:07 |
Truly
to samson
下拉框都有id,利用id控制disabled即可
比如docuemnt.getElementById('selLev0').disabled = true;
即可变成不可用
关于提交,有个onchange事件,在每次选择时激发,提交数据库可以调用
setSelections();
此时页面上的js变量中分别保存了索引,值,文本(In, Vn, Tn),n表示第几级下拉框
回复
引用
查看
#26楼
2007-06-04 17:27 |
yama [未注册用户]
咨询一下,你写的这个,如果一级菜单下面的比如: 2,没有二级菜单内容时会报错,请问如何解决这个问题?
回复
引用
#27楼
2007-08-31 14:53 |
coreahan [未注册用户]
请问,博主,如果我想在页面中显示3个你这样的4级联动菜单,我改怎么改,能给些意见吗!谢谢
回复
引用
#28楼
2007-08-31 14:57 |
Truly
当然可以的,比如当前页面的演示就是一个5级的,理论上可以无限级,但是对于dom的性能,目前尽量控制在10级以内。
回复
引用
查看
#29楼
2007-09-03 09:02 |
crasihty [未注册用户]
@Truly
樓主,目前我在開發 Oracle BI系統 ,急需一個可以動態連接Oracle數據庫,的多級无刷新联动菜单(JS或JSP),希望您可以幫忙提供一個!
在此,謝過了!
回复
引用
#30楼
2007-09-18 22:31 |
mqchy [未注册用户]
我们都希望你把这个静态的改成从数据库里读出来的动态的无刷新多级联动....
急切地期待中.......
回复
引用
#31楼
2007-11-24 13:39 |
wlt [未注册用户]
怎样加入ASP.NET页面中呢
回复
引用
#32楼
2008-04-01 09:53 |
252 [未注册用户]
无言以对了,厉害!
回复
引用
#33楼
2008-06-19 15:03 |
zn [未注册用户]
怎么做还是不知道。
先顶一个,再慢慢看
回复
引用
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-08-26 13:48 编辑过
相关文章:
Ajax实现无刷新三联动下拉框
无刷新联动代码实例及代码详解
无刷新联动下拉菜单(DotTextWeb版)
无刷新联动代码详解
无刷新联动大烧烤(XMLHttpRequest,AJAX Library)
几个不同类型无刷新联动例子
相关链接:
所属分类的其他文章:
继续完善SandCastle
使用SandCastle和ScriptDoc创建JavaScript文档
JavaScript实现自定义事件
JavaScript面向对象之属性实现
JavaScript随笔一篇
设计模式在JavaScript中的应用(2) -- Observer
关于JavaScript的“+”运算和“-”运算和三目操作符“?:”
微软ASP.NET AJAX中日期类型的JSON处理
JavaScript面向对象之方法重载
设计模式在JavaScript中的应用(1)
最新IT新闻:
消息称MySQL创始人已向Sun提交辞呈
谷歌Chrome浏览器即将更换LOGO颜色?
淘宝网合并阿里妈妈 专家称阿里巴巴或有新战略
微软研究院发布 AutoCollage - 整理并融合照片
2008年9月5日科技博客精选
博客园新闻频道
博客园首页
社区