2006年12月21日 18:46:00
说明: 偶发现个比较好的联动组件, 控件从网上找的, 比较好用,如下:
(一). 示例图片
(二). 详细代码
1. 页面前台代码
1
>
body
<
2
>
form id
=
"
form1
"
runat
=
"
server
"
<
3
>
div
<
4
&
nbsp;
&
nbsp;
>
asp:Panel ID
=
"
Panel2
"
runat
=
"
server
"
BackColor
=
"
#FFC080
"
Font
-
Size
=
"
X-Large
"
5
ForeColor
=
"
#C04000
"
Height
=
"
50px
"
Width
=
"
387px
"
<
6
DropDownList 联动示例:
>/
asp:Panel
<
7
>
asp:Panel ID
=
"
Panel1
"
runat
=
"
server
"
BackColor
=
"
#C0C0FF
"
Height
=
"
170px
"
Width
=
"
387px
"
<
8
>
br
/<
9
请选择类别:
>
br
/<
10
>
br
/<
11
&
nbsp;
12
>
asp:DropDownList ID
=
"
ddl1
"
runat
=
"
server
"
<
13
>/
asp:DropDownList
<&
nbsp;
14
>
asp:DropDownList ID
=
"
ddl2
"
runat
=
"
server
"
<
15
>/
asp:DropDownList
<&
nbsp;
16
>
asp:DropDownList ID
=
"
ddl3
"
runat
=
"
server
"
<
17
>/
asp:DropDownList
<&
nbsp;
&
nbsp;
>
br
/<
18
>
br
/<
19
&
nbsp;
20
>
C1:RelatedList id
=
"
rl1
"
runat
=
"
server
"
<>/
C1:RelatedList
<
21
>
asp:Button ID
=
"
btOK
"
runat
=
"
server
"
OnClick
=
"
Button1_Click
"
Text
=
"
取值
"
Width
=
"
67px
"
/<
22
>/
asp:Panel
<
23
>/
div
<
24
>/
form
<
25
>/
body
<
26
>
body
<
2
>
form id
=
"
form1
"
runat
=
"
server
"
<
3
>
div
<
4
&
nbsp;
&
nbsp;
>
asp:Panel ID
=
"
Panel2
"
runat
=
"
server
"
BackColor
=
"
#FFC080
"
Font
-
Size
=
"
X-Large
"
5
ForeColor
=
"
#C04000
"
Height
=
"
50px
"
Width
=
"
387px
"
<
6
DropDownList 联动示例:
>/
asp:Panel
<
7
>
asp:Panel ID
=
"
Panel1
"
runat
=
"
server
"
BackColor
=
"
#C0C0FF
"
Height
=
"
170px
"
Width
=
"
387px
"
<
8
>
br
/<
9
请选择类别:
>
br
/<
10
>
br
/<
11
&
nbsp;12
>
asp:DropDownList ID
=
"
ddl1
"
runat
=
"
server
"
<
13
>/
asp:DropDownList
<&
nbsp;14
>
asp:DropDownList ID
=
"
ddl2
"
runat
=
"
server
"
<
15
>/
asp:DropDownList
<&
nbsp;16
>
asp:DropDownList ID
=
"
ddl3
"
runat
=
"
server
"
<
17
>/
asp:DropDownList
<&
nbsp;
&
nbsp;
>
br
/<
18
>
br
/<
19
&
nbsp;20
>
C1:RelatedList id
=
"
rl1
"
runat
=
"
server
"
<>/
C1:RelatedList
<
21
>
asp:Button ID
=
"
btOK
"
runat
=
"
server
"
OnClick
=
"
Button1_Click
"
Text
=
"
取值
"
Width
=
"
67px
"
/<
22
>/
asp:Panel
<
23
>/
div
<
24
>/
form
<
25
>/
body
<
26
2.页面后台代码
1
protected
void
Page_Load(
object
sender, EventArgs e)
2
{
3
if (!Page.IsPostBack)
4
{
5
ArrayList Category = new ArrayList();
6
Category.Add("ddl1");
7
Category.Add("ddl2");
8
Category.Add("ddl3");
9
10
//Method 1. 指定XML文件路径
11
rl1.DataSource = @"Category.xml";
12
13
/**/////Method 2. 指定数据源为DataSet对象
14
//DataSet ds = new DataSet();
15
//ds = GetData();
16
//rl1.DataSource = ds;
17
18
19
rl1.ListID = Category;
20
rl1.DataBind();
21
22
}
23
}
24
private
DataSet GetData()
25
{
26
DataSet ds = new DataSet();
27
DataTable dt = new DataTable();
28
dt.Columns.Add(new DataColumn("Value", typeof(int)));
29
dt.Columns.Add(new DataColumn("Context", typeof(string)));
30
dt.Columns.Add(new DataColumn("ParentValue", typeof(int)));
31
DataRow drNew = dt.NewRow();
32
drNew["Value"] = 1;
33
drNew["Context"] = "水果";
34
drNew["ParentValue"] = 0;
35
dt.Rows.Add(drNew);
36
37
drNew = dt.NewRow();
38
drNew["Value"] = 2;
39
drNew["Context"] = "动物";
40
drNew["ParentValue"] = 0;
41
dt.Rows.Add(drNew);
42
43
drNew = dt.NewRow();
44
drNew["Value"] = 3;
45
drNew["Context"] = "葡萄";
46
drNew["ParentValue"] = 1;
47
dt.Rows.Add(drNew);
48
49
drNew = dt.NewRow();
50
drNew["Value"] = 7;
51
drNew["Context"] = "红葡萄";
52
drNew["ParentValue"] = 3;
53
dt.Rows.Add(drNew);
54
55
drNew = dt.NewRow();
56
drNew["Value"] = 8;
57
drNew["Context"] = "柴葡萄";
58
drNew["ParentValue"] = 3;
59
dt.Rows.Add(drNew);
60
61
drNew = dt.NewRow();
62
drNew["Value"] = 4;
63
drNew["Context"] = "桔子";
64
drNew["ParentValue"] = 1;
65
dt.Rows.Add(drNew);
66
67
drNew = dt.NewRow();
68
drNew["Value"] = 12;
69
drNew["Context"] = "红桔子";
70
drNew["ParentValue"] = 4;
71
dt.Rows.Add(drNew);
72
73
drNew = dt.NewRow();
74
drNew["Value"] = 13;
75
drNew["Context"] = "绿桔子";
76
drNew["ParentValue"] = 4;
77
dt.Rows.Add(drNew);
78
79
drNew = dt.NewRow();
80
drNew["Value"] = 5;
81
drNew["Context"] = "香蕉";
82
drNew["ParentValue"] = 1;
83
dt.Rows.Add(drNew);
84
85
drNew = dt.NewRow();
86
drNew["Value"] = 14;
87
drNew["Context"] = "马";
88
drNew["ParentValue"] = 2;
89
dt.Rows.Add(drNew);
90
91
drNew = dt.NewRow();
92
drNew["Value"] = 15;
93
drNew["Context"] = "红马";
94
drNew["ParentValue"] = 14;
95
dt.Rows.Add(drNew);
96
97
drNew = dt.NewRow();
98
drNew["Value"] = 16;
99
drNew["Context"] = "白马";
100
drNew["ParentValue"] = 14;
101
dt.Rows.Add(drNew);
102
103
drNew = dt.NewRow();
104
drNew["Value"] = 17;
105
drNew["Context"] = "蓝马";
106
drNew["ParentValue"] = 14;
107
dt.Rows.Add(drNew);
108
109
drNew = dt.NewRow();
110
drNew["Value"] = 18;
111
drNew["Context"] = "牛";
112
drNew["ParentValue"] = 2;
113
dt.Rows.Add(drNew);
114
115
ds.Tables.Add(dt);
116
return ds;
117
}
118
protected
void
Button1_Click(
object
sender, EventArgs e)
119
{
120
Response.Write(">script
" + this.ddl1.SelectedItem.Text + "," + this.ddl2.SelectedItem.Text + "," +
121
this.ddl3.SelectedItem.Text + "');>/script<");
122
}
123
protected
void
Page_Load(
object
sender, EventArgs e)2

{3
if (!Page.IsPostBack)4

{ 5
ArrayList Category = new ArrayList();6
Category.Add("ddl1");7
Category.Add("ddl2");8
Category.Add("ddl3");9

10
//Method 1. 指定XML文件路径11
rl1.DataSource = @"Category.xml"; 12

13

/**/////Method 2. 指定数据源为DataSet对象14
//DataSet ds = new DataSet(); 15
//ds = GetData(); 16
//rl1.DataSource = ds;17

18

19
rl1.ListID = Category;20
rl1.DataBind();21

22
}23
}
24
private
DataSet GetData()25

{26
DataSet ds = new DataSet();27
DataTable dt = new DataTable();28
dt.Columns.Add(new DataColumn("Value", typeof(int)));29
dt.Columns.Add(new DataColumn("Context", typeof(string)));30
dt.Columns.Add(new DataColumn("ParentValue", typeof(int)));31
DataRow drNew = dt.NewRow();32
drNew["Value"] = 1;33
drNew["Context"] = "水果";34
drNew["ParentValue"] = 0;35
dt.Rows.Add(drNew);36

37
drNew = dt.NewRow();38
drNew["Value"] = 2;39
drNew["Context"] = "动物";40
drNew["ParentValue"] = 0;41
dt.Rows.Add(drNew);42

43
drNew = dt.NewRow();44
drNew["Value"] = 3;45
drNew["Context"] = "葡萄";46
drNew["ParentValue"] = 1;47
dt.Rows.Add(drNew);48

49
drNew = dt.NewRow();50
drNew["Value"] = 7;51
drNew["Context"] = "红葡萄";52
drNew["ParentValue"] = 3;53
dt.Rows.Add(drNew);54

55
drNew = dt.NewRow();56
drNew["Value"] = 8;57
drNew["Context"] = "柴葡萄";58
drNew["ParentValue"] = 3;59
dt.Rows.Add(drNew);60

61
drNew = dt.NewRow();62
drNew["Value"] = 4;63
drNew["Context"] = "桔子";64
drNew["ParentValue"] = 1;65
dt.Rows.Add(drNew);66

67
drNew = dt.NewRow();68
drNew["Value"] = 12;69
drNew["Context"] = "红桔子";70
drNew["ParentValue"] = 4;71
dt.Rows.Add(drNew);72

73
drNew = dt.NewRow();74
drNew["Value"] = 13;75
drNew["Context"] = "绿桔子";76
drNew["ParentValue"] = 4;77
dt.Rows.Add(drNew);78

79
drNew = dt.NewRow();80
drNew["Value"] = 5;81
drNew["Context"] = "香蕉";82
drNew["ParentValue"] = 1;83
dt.Rows.Add(drNew);84

85
drNew = dt.NewRow();86
drNew["Value"] = 14;87
drNew["Context"] = "马";88
drNew["ParentValue"] = 2;89
dt.Rows.Add(drNew);90

91
drNew = dt.NewRow();92
drNew["Value"] = 15;93
drNew["Context"] = "红马";94
drNew["ParentValue"] = 14;95
dt.Rows.Add(drNew);96

97
drNew = dt.NewRow();98
drNew["Value"] = 16;99
drNew["Context"] = "白马";100
drNew["ParentValue"] = 14;101
dt.Rows.Add(drNew);102

103
drNew = dt.NewRow();104
drNew["Value"] = 17;105
drNew["Context"] = "蓝马";106
drNew["ParentValue"] = 14;107
dt.Rows.Add(drNew);108

109
drNew = dt.NewRow();110
drNew["Value"] = 18;111
drNew["Context"] = "牛";112
drNew["ParentValue"] = 2;113
dt.Rows.Add(drNew); 114

115
ds.Tables.Add(dt);116
return ds;117
}
118
protected
void
Button1_Click(
object
sender, EventArgs e)119

{120
Response.Write(">script
" + this.ddl1.SelectedItem.Text + "," + this.ddl2.SelectedItem.Text + "," + 121
this.ddl3.SelectedItem.Text + "');>/script<"); 122
}
123
(三).示例代码下载
http://www.cnblogs.com/Files/ChengKing/LinkageDropDownList.rar
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1452146
ASP.NET DropDownList联动示例
本文介绍了一种ASP.NET中实现DropDownList联动的方法。通过使用自定义控件RelatedList,并结合XML文件或DataSet作为数据源,实现了根据用户选择动态更新下拉列表的功能。提供了完整的页面前台及后台代码。
4311

被折叠的 条评论
为什么被折叠?



