动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   .Net → 阅读文章

 DropDownList Web 控件

作者来源: 
阅读 1610 人次 , 2006-3-29 4:29:00 


dropdownlist web 控件是一个下拉式的选单,功能和radiobuttonlist web 控件很类似,提供使用者在一群选项中选择单一的值;不过radiobuttonlist web 控件适合使用在较少量的选项群组项目,而dropdownlist web 控件则适合用来管理大量的选项群组项目。其使用语法如下:

<asp:dropdownlist
id="被程序代码所控制的名称"
runat="server"
autopostback="true | false"
*datasource="<%数据系结叙述%>"
*datatextfield="数据源的字段"
*datavaluefield="数据源的字段"
onselectedindexchanged="事件程序名称"
>
<asp:listitem/>
</asp:dropdownlist>

*关于和数据源的数据系结部分,我们在后面的章节再介绍。
下表为dropdownlist web 控件的常用属性:

下列范例将dropdwonlist web 控件填入十二个月:

<html>
<asp:dropdownlist id="ddla" runat="server">
<asp:listitem>1 月</asp:listitem>
<asp:listitem>2 月</asp:listitem>
<asp:listitem>3 月</asp:listitem>
<asp:listitem>4 月</asp:listitem>
<asp:listitem>5 月</asp:listitem>
<asp:listitem>6 月</asp:listitem>
<asp:listitem>7 月</asp:listitem>
<asp:listitem>8 月</asp:listitem>
<asp:listitem>9 月</asp:listitem>
<asp:listitem>10 月</asp:listitem>
<asp:listitem>11 月</asp:listitem>
<asp:listitem>12 月</asp:listitem>
</asp:dropdownlist>
</html>


不过上列的方法太麻烦,我们可以利用page_load 事件用程序动态的加入项目,如下范例所示:

<html>
<asp:dropdownlist id="ddla" runat="server"/>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim shti as short
dim lia as listitem
for shti=1 to 12
lia=new listitem(shti.tostring & "月")
ddla.items.add(lia)
next
end sub
</script>
</html>

这样程序代码就简洁多了。若要取得dropdownlist web 控件被选取到的项目,则可以利用和radiobuttonlist web 控件一样的方法,参考dropdownlist web 控件的selecteditem 属性即可。下列范例当我们选择dropdownlist web 控件完毕后,按下按钮会将选取到的选项显示出来:

<html>
<form id="from1" runat="server">
<asp:dropdownlist id="ddla" runat="server"/>
<asp:button id="btna" text="请按我" onclick="btna_click"
runat="server"/>
</form>
<asp:label id="lbla" runat="server"/>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim shti as short
dim lia as listitem
for shti=1 to 12
lia=new listitem(shti.tostring & "月")
ddla.items.add(lia)
next
end sub
sub btna_click(sender as object,e as eventargs)
lbla.text="您所选择的项目是" & ddla.selecteditem.text & _
" ,索引值是" & ddla.selectedindex.tostring
end sub
</script>
</html>


dropdownlist web 控件所支持的事件是selectedindexchanged 事件。若指定发生本事件要触发的事件程序,并将autopostback 属性设为true ,则当我们改变dropdownlist web 控件里的选项时,便会触发这个事件。下列范例将前一个范例的button web 控件拿掉,然后指定发生onselectedindexchanged 所要执行的事件程序,并将autopostback 设为true:

<html>
<form id="from1" runat="server">
<asp:dropdownlist id="ddla" autopostback="true"
onselectedindexchanged="ddla_changed" runat="server"/>
</form>
<asp:label id="lbla" runat="server"/>
<script language="vb" runat="server">
sub page_load(sender as object,e as eventargs)
dim shti as short
dim lia as listitem
for shti=1 to 12
lia=new listitem(shti.tostring & "月")
ddla.items.add(lia)
next
end sub
sub ddla_changed(sender as object,e as eventargs)
lbla.text="您所选择的项目是" & ddla.selecteditem.text & _
" ,索引值是" & ddla.selectedindex.tostring
end sub
</script>
</html>


选择正确的日期
这边我们来看一个比较实用的程序,它的作用是提供三个dropdownlist web 控件让使用者选择日期。但是这里并不是只有提供三个dropdownlist 控件就了事,而是可以依据正确的年份以及月份提供正确的日期选择,以避免有如2 月31 日这种错误日期的发生。下列范例限制使用者只能选择包括今天以后五年内的日期:

<html>
您认为两岸三通什么时候开放比较合适?
<form id="form1" runat="server">
<asp:dropdownlist id="d1" autopostback="true"
onselectedindexchanged="daychg"
runat="server"/>年
<asp:dropdownlist id="d2" autopostback="true"
onselectedindexchanged="daychg"
runat="server"/>月
<asp:dropdownlist id="d3" autopostback="true"
onselectedindexchanged="daychg"
runat="server"/>日
</form>
<asp:label id="label1" runat="server" />
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
if page.ispostback=true then return '如果不是第一次加载就不执行
dim shti as short
dim lia as listitem
for shti=year(now()) to year(now())+5 '加入未来五年内的时间
lia=new listitem(shti)
d1.items.add(shti)
next
for shti=1 to 12 '将月份填入
lia=new listitem(shti)
d2.items.add(shti)
next
d2.items(month(now())-1).selected=true '将选择到的项目显示为现在的
月份
for shti=1 to day(dateserial(year(now()),month(now())+1,1-1)) '取得
现在的月份有几天
lia=new listitem(shti)
d3.items.add(shti)
next
d3.items(day(now())-1).selected=true '将选择到的项目显示为现在的日
end sub
sub daychg(sender as object , e as eventargs)
'下列判断如果使用者选择日期不是今天之后, 则将日及回指定到今天
if dateserial(d1.selecteditem.text.toint16, _
d2.selecteditem.text.toint16, _
d2.selecteditem.text.toint16) < now then
d1.items(0).selected=true
d2.items(month(now())-1).selected=true
d3.items(day(now())-1).selected=true
return
end if
dim shti as short
dim lia as listitem
dim shtd as short
shtd=d3.selecteditem.text.toint16'储存使用者选取的日期
d3.items.clear '移除所有的项目
for shti=1 to day(dateserial(d1.selecteditem.text.toint16, _
d2.selecteditem.text.toint16+1,1-1))
lia=new listitem(shti)
d3.items.add(shti)
next
'下列判断如果使用者原先选的日期大于现在月份的日期,
'就选择第一天; 否则将原日期填回去
if day(dateserial(d1.selecteditem.text.toint16, _
d2.selecteditem.text.toint16+1,1-1)) < shtd then
d3.items(0).selected=true
else
d3.items(shtd-1).selected=true
end if
label1.text="您所选择的日期为" & d1.selecteditem.text & " 年" & _
d2.selecteditem.text & " 月" & _
d3.selecteditem.text & " 日"
end sub
</script>
</html>

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:ListBox Web 控件
· 下一篇:CheckBoxList 控件
· c语言10个经典小程序
· 用JSP构建动态网站
· Windows操作系统中的.NET Framework支持(附录)
· 随机函数生成密码的asp.net版本
· 多层结构来开发ASP.NET程序


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077