利用列表控件(listcontrol)下面的东东做的 下拉列表联动 案例,我整了两天才整懂,别笑我笨,嘿嘿!
Posted on 2006-02-25 19:11 天轰穿 阅读(1416) 评论(2) 编辑 收藏 举报
<%@ Page Language="vb" Debug="true" %> <%--这里要注意,为什么我把 ResponseEncoding="gb2312" 去掉了?我也说不清楚,反正是我这两天挨个排错的时候弄下来的,我想是他的编码方式和left有冲突吧--%>
<html><head>
<script language="VB" runat="server">
'处理提交按钮事件
sub btn_click(sender as object,e as commandeventargs)
dim s,temp as string, i,j as integer
s="欢迎您:" & txtname.text '向变量S存入表单所获得的信息,下面的s &=其实只是连接符号,呵呵,不要也行,这样方便阅读。
s &="!密码是:" & txtpassword.text
s &="所选的专业是:" & zhuanye.selecteditem.text
s &="你的意见是:" & txtcomment.text
s &="你所在的院是:" & selyuan.selecteditem.text
s &="你所在的系是:" & lstxi.selecteditem.text
for i = 0 to chkfond.items.count-1 '循环从0到chkfond集合的最大索引-1。
if chkfond.items(i).selected then '向temp加入被选择的课项目
temp=temp & chkfond.items(i).text & ""
j+=1
end if
next
if j>0 then s &= "你选的课是:" & temp & "." '这里需要注意后面的赋值,s &= 表示中国值仍然存给变量S
lbl.text=s & "提交:" & e.commandname & "-" & e.commandargument '下面标签上显示的内容
end sub
'处理“全部清除”按钮事件
sub tbnr_click(sender as object,e as eventargs)
dim i as integer
lbl.text="" '清除lbl标签的内容
txtname.text="" '清除名字标签的内容
txtpassword.text="" '清除密码标签的内容
txtcomment.text="" '清除意见标签的内容
zhuanye.items(0).selected="true" '清除专业选择
zhuanye.items(1).selected="false" '清除选择类控件的选择
for i = 0 to chkfond.items.count-1
chkfond.items(i).selected=false
next
chkdirection.checked=false '清除控制课排列方式控件的内容
end sub
'处理双下拉联动框,提交按钮事件
sub selchange(sender as object,e as eventargs)
dim yuan as string = left(selyuan.selecteditem.text,2) '切忌啊,小心啊,要死人的啊,我在这里耗了整两天,因为这里只截取两个字符,我下面没有注意,多整一空格,原因还真简单,郁闷死了。
lstxi.items.clear() '为什么这里要清除,清除的是什么?我不大清楚,等我知道了再写出来。
select case yuan
case " 1" :
lstxi.items.add("01-1系")
lstxi.items.add("01-2系")
lstxi.items.add("01-3系")
case " 6" :
lstxi.items.add("022-1班")
lstxi.items.add("022-2班")
lstxi.items.add("022-3班")
lstxi.items.add("022-4班")
lstxi.items.add("022-5班")
lstxi.items.add("022-6班")
case "18" :
lstxi.items.add("033-1组")
lstxi.items.add("033-2组")
lstxi.items.add("033-3组")
lstxi.items.add("033-4组")
lstxi.items.add("033-5组")
end select
lstxi.Items(2).selected="True" '默认选中的行
end sub
'处理chkdirection的选择改变事件,改变chkfond的排列方向
sub chk_checkedchanged(sender as object,e as eventargs)
if chkdirection.checked = true then '如果chkdirection的checked属性是选中,
chkfond.repeatdirection = repeatdirection.horizontal '那么就水平排列
else '否则
chkfond.repeatdirection = repeatdirection.vertical '就竖直排列了
end if
end sub
</script>
</head>
<body>
<!--文字literal显示-->
<asp:Literal ID="txt" runat="server">
<big><b><i>选课</i> 输入选择</b></big>
</asp:Literal>
<form runat="server">
请输入姓名:<br />
<asp:TextBox ID="txtname" Width="90" runat="server" value="guest"/>
请输入密码:
<asp:TextBox ID="txtpassword" runat="server" Columns="10" value="123" TextMode="Password"/><br />
请选择专业:
<asp:RadioButtonList ID="zhuanye" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Selected="true">文科</asp:ListItem>
<asp:ListItem>理科</asp:ListItem>
</asp:RadioButtonList>
请输入您的选课意见〈多行文本框〉:<br />
<asp:TextBox ID="txtcomment" runat="server" Columns="40" Rows="5" TextMode="MultiLine"/><br />
选择你所在的院:
<asp:DropDownList ID="selyuan" runat="server" AutoPostBack="true" OnSelectedIndexChanged="selchange">
<asp:ListItem> 1 第一院</asp:ListItem>
<asp:ListItem Selected="true"> 6 第二院</asp:ListItem>
<asp:ListItem>18 第三院</asp:ListItem>
</asp:DropDownList>
请选择你所在的系:
<asp:ListBox ID="lstxi" runat="server">
<asp:ListItem Selected>选院后联动</asp:ListItem><%--预赋初值--%>
</asp:ListBox><br />
请选择你的选课<br />
<asp:CheckBoxList ID="chkfond" runat="server">
<asp:ListItem>文学</asp:ListItem>
<asp:ListItem>音乐</asp:ListItem>
<asp:ListItem>政治</asp:ListItem>
</asp:CheckBoxList><br />
<!--指定chkfond的排列方向-->
<asp:CheckBox ID="chkdirection" runat="server" AutoPostBack="true" Checked="false" Text="水平排列" OnCheckedChanged="chk_checkedchanged"/>
<!--提交和清除按钮-->
<asp:Button ID="btn" runat="server" Text="提交" oncommand="btn_click" CommandName="时间" CommandArgument="1900-08-20"/>
<asp:Button ID="tbnr" Text="全部清除" runat="server" OnClick="tbnr_click"/><br />
<asp:Label ID="lbl" runat="server"/>
</form>
</body>
</html>
<html><head>
<script language="VB" runat="server">
'处理提交按钮事件
sub btn_click(sender as object,e as commandeventargs)
dim s,temp as string, i,j as integer
s="欢迎您:" & txtname.text '向变量S存入表单所获得的信息,下面的s &=其实只是连接符号,呵呵,不要也行,这样方便阅读。
s &="!密码是:" & txtpassword.text
s &="所选的专业是:" & zhuanye.selecteditem.text
s &="你的意见是:" & txtcomment.text
s &="你所在的院是:" & selyuan.selecteditem.text
s &="你所在的系是:" & lstxi.selecteditem.text
for i = 0 to chkfond.items.count-1 '循环从0到chkfond集合的最大索引-1。
if chkfond.items(i).selected then '向temp加入被选择的课项目
temp=temp & chkfond.items(i).text & ""
j+=1
end if
next
if j>0 then s &= "你选的课是:" & temp & "." '这里需要注意后面的赋值,s &= 表示中国值仍然存给变量S
lbl.text=s & "提交:" & e.commandname & "-" & e.commandargument '下面标签上显示的内容
end sub
'处理“全部清除”按钮事件
sub tbnr_click(sender as object,e as eventargs)
dim i as integer
lbl.text="" '清除lbl标签的内容
txtname.text="" '清除名字标签的内容
txtpassword.text="" '清除密码标签的内容
txtcomment.text="" '清除意见标签的内容
zhuanye.items(0).selected="true" '清除专业选择
zhuanye.items(1).selected="false" '清除选择类控件的选择
for i = 0 to chkfond.items.count-1
chkfond.items(i).selected=false
next
chkdirection.checked=false '清除控制课排列方式控件的内容
end sub
'处理双下拉联动框,提交按钮事件
sub selchange(sender as object,e as eventargs)
dim yuan as string = left(selyuan.selecteditem.text,2) '切忌啊,小心啊,要死人的啊,我在这里耗了整两天,因为这里只截取两个字符,我下面没有注意,多整一空格,原因还真简单,郁闷死了。
lstxi.items.clear() '为什么这里要清除,清除的是什么?我不大清楚,等我知道了再写出来。
select case yuan
case " 1" :
lstxi.items.add("01-1系")
lstxi.items.add("01-2系")
lstxi.items.add("01-3系")
case " 6" :
lstxi.items.add("022-1班")
lstxi.items.add("022-2班")
lstxi.items.add("022-3班")
lstxi.items.add("022-4班")
lstxi.items.add("022-5班")
lstxi.items.add("022-6班")
case "18" :
lstxi.items.add("033-1组")
lstxi.items.add("033-2组")
lstxi.items.add("033-3组")
lstxi.items.add("033-4组")
lstxi.items.add("033-5组")
end select
lstxi.Items(2).selected="True" '默认选中的行
end sub
'处理chkdirection的选择改变事件,改变chkfond的排列方向
sub chk_checkedchanged(sender as object,e as eventargs)
if chkdirection.checked = true then '如果chkdirection的checked属性是选中,
chkfond.repeatdirection = repeatdirection.horizontal '那么就水平排列
else '否则
chkfond.repeatdirection = repeatdirection.vertical '就竖直排列了
end if
end sub
</script>
</head>
<body>
<!--文字literal显示-->
<asp:Literal ID="txt" runat="server">
<big><b><i>选课</i> 输入选择</b></big>
</asp:Literal>
<form runat="server">
请输入姓名:<br />
<asp:TextBox ID="txtname" Width="90" runat="server" value="guest"/>
请输入密码:
<asp:TextBox ID="txtpassword" runat="server" Columns="10" value="123" TextMode="Password"/><br />
请选择专业:
<asp:RadioButtonList ID="zhuanye" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Selected="true">文科</asp:ListItem>
<asp:ListItem>理科</asp:ListItem>
</asp:RadioButtonList>
请输入您的选课意见〈多行文本框〉:<br />
<asp:TextBox ID="txtcomment" runat="server" Columns="40" Rows="5" TextMode="MultiLine"/><br />
选择你所在的院:
<asp:DropDownList ID="selyuan" runat="server" AutoPostBack="true" OnSelectedIndexChanged="selchange">
<asp:ListItem> 1 第一院</asp:ListItem>
<asp:ListItem Selected="true"> 6 第二院</asp:ListItem>
<asp:ListItem>18 第三院</asp:ListItem>
</asp:DropDownList>
请选择你所在的系:
<asp:ListBox ID="lstxi" runat="server">
<asp:ListItem Selected>选院后联动</asp:ListItem><%--预赋初值--%>
</asp:ListBox><br />
请选择你的选课<br />
<asp:CheckBoxList ID="chkfond" runat="server">
<asp:ListItem>文学</asp:ListItem>
<asp:ListItem>音乐</asp:ListItem>
<asp:ListItem>政治</asp:ListItem>
</asp:CheckBoxList><br />
<!--指定chkfond的排列方向-->
<asp:CheckBox ID="chkdirection" runat="server" AutoPostBack="true" Checked="false" Text="水平排列" OnCheckedChanged="chk_checkedchanged"/>
<!--提交和清除按钮-->
<asp:Button ID="btn" runat="server" Text="提交" oncommand="btn_click" CommandName="时间" CommandArgument="1900-08-20"/>
<asp:Button ID="tbnr" Text="全部清除" runat="server" OnClick="tbnr_click"/><br />
<asp:Label ID="lbl" runat="server"/>
</form>
</body>
</html>