实现带有数据绑定的客户端脚本控制的二级联动菜单[zz]
今天制作了一个客户端javascript脚本控制的二级联动菜单,使用ASP.NET很容易就能制作联动菜单,但是有个很大的问题,就是当选择一级菜单时,由于ASP.NET本身的特性,选择的项目需要被提交到服务器处理,然后再返回二级菜单的内容,中间有个服务器往返的问题,同时造成页面刷新,这在网络状况不好的情况下很不利。
我个人感觉使用客户端javascript脚本控制,难点是两个菜单中的数据都是数据库中动态绑定上去的,因此如何将菜单中的数据读入到客户点脚本中也是一个问题。可以使用ASP.NET动态生成含有菜单的元素内容的script脚本,这样在客户端进行菜单选择时,全部都是客户端脚本操作,速度很快,从而提高了性能。
以下举一个例子,一级菜单显示的栏目的类别(Catalogs),每个类别下又下设了很多的栏目(Class),因此二级菜单的内容就是根据一级菜单栏目的选择显示出栏目。首先先介绍一下用到的数据表:
|
newscatalogs表 |
newsclass表 |
|
|
PK |
catalogid |
classid |
|
|
catalogname |
classname |
|
|
foundname |
catalogid |
|
|
addTime |
addtime |
在VS中新建一个webform,页面上放置两个下拉列表框DropDownlist服务器控件,一个ID是ddlcatalogs,一个ID是ddlclasses,然后再放置一个TextBox,ID是classid,注意三个控件都要在<form></form>标记内。每次在ddlcatalogs中选择一个类别,在ddlclasses中会自动生成属于此类别下的所有栏目,选择ddlclasses中的栏目,会在classid中显示出所选择栏目的数据库id。
控件的HTML代码如下:
在页面的Page_Load事件中输入以下代码:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

浙公网安备 33010602011771号