- ASP.NET动态网站设计任务教程
- 张趁香 陈俊贤
- 664字
- 2021-03-25 16:15:39
任务2-11 可编辑下拉列表框的制作
需求:
下拉列表框提供文本可选项,同时也能由用户输入可选项之外的文本。
分析:
添加文本框和下拉列表两个标签,使用两个绝对定位的DIV作为它们的容器,调整DIV位置及文本框和下拉列表大小,使两者编辑区完全重叠,在下拉列表标签的选项改变时,将选项值写入文本框标签中,从而实现下拉列表框的可编辑功能。
实现:
第一步,新建文件夹11,添加一个页面。
第二步,在页面中添加两个作为容器的DIV,并设置其相应属性,代码如清单2-32所示。
清单2-32 两个重叠的容器
![](https://epubservercos.yuewen.com/09F237/17180253904508906/epubprivate/OEBPS/Images/img00052002.jpg?sign=1738895586-yZJA45EKMO9DXS0AaTUaYdUCbYcLyvVx-0-76b75cc30babc2f0e12ac380d49eb9e7)
第三步,在第一个容器中添加下拉列表标签,使其作为下层标签,并设置其相关属性,代码如清单2-33所示。
清单2-33 下拉列表标签设置
![](https://epubservercos.yuewen.com/09F237/17180253904508906/epubprivate/OEBPS/Images/img00053001.jpg?sign=1738895586-RZBHMsYY9y5ofXxB8sAEB1WyuTTMZJYf-0-0dc2e1c8411e3069b742c30cf12d89aa)
第四步,在第二个容器中添加文本框标签,使其作为上层标签(默认为后来者居上),并设置其相关属性,代码如清单2-34所示。
清单2-34 文本框标签设置
![](https://epubservercos.yuewen.com/09F237/17180253904508906/epubprivate/OEBPS/Images/img00053004.jpg?sign=1738895586-0R64AGNOqQdgMD6BugQ4Bsfb9eJxAhLU-0-e790daf383d848daf7a55bb75647b90f)
第五步,为及时将下拉列表标签选取值送到文本框标签中,在下拉列表标签中设置事件属性onchange为“document.getElementById('Text1').value=this.value;”。
第六步,添加命令按钮标签以读取Text1中的值,属性设置见清单2-35,代码设置如清单2-36所示。
清单2-35 命令按钮标签设置
![](https://epubservercos.yuewen.com/09F237/17180253904508906/epubprivate/OEBPS/Images/img00053002.jpg?sign=1738895586-ERfJLTV36uHkpbnSGfXc8GmdmiDnWseu-0-21600448e2292578c31ff28e6d7ec486)
清单2-36 命令按钮标签单击事件处理函数
![](https://epubservercos.yuewen.com/09F237/17180253904508906/epubprivate/OEBPS/Images/img00053003.jpg?sign=1738895586-9mW0NfUsIjb7GCbTI0S9ySFdH8PTykFS-0-5979020fc7efd798989dc8788c30aeca)
说明
下拉列表右侧的小按钮宽度为22px,所以下拉列表标签宽度要比文本框标签宽22px。
运行后发现文本框标签偏下1px,所以将文本框标签容器的top属性改为-1px,以实现两个标签的完全重叠,另外文本框的右边框应去除(border-right:none)。
如果文本框标签id是唯一的,则可以简写下拉列表标签onchange的属性,其代码为onchange="Text1.value=this.value"。
本任务中不可用DIV定位其他标签,可以直接设置文本框标签和下拉列表标签的定位方式(position)为绝对定位(absolute),然后再设置位置大小等属性。