Default.aspx:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>combobox</title>
<link href="ListSearch.css" rel="stylesheet" type="text/css" />
</head>
<script type="text/javascript">
var dropShow = false
var currentID
function dropdown(el) {
if (dropShow) {
dropFadeOut()
} else {
currentID = el
el.style.visibility = "visible"
dropFadeIn()
}
}
function dropFadeIn() {//select box fade in
if (currentID.filters.alpha.opacity < 100) {
currentID.filters.alpha.opacity += 20
fadeTimer = setTimeout("dropFadeIn()", 50)
} else {
dropShow = true
clearTimeout(fadeTimer)
}
}
function dropFadeOut() {//select box fade out
if (currentID.filters.alpha.opacity > 0) {
clearTimeout(fadeTimer)
currentID.filters.alpha.opacity -= 20
fadeTimer = setTimeout("dropFadeOut()", 50)
} else {
dropShow = false
currentID.style.visibility = "hidden"
}
}
function dropdownHide() {
if (dropShow) {
dropFadeOut()
dropShow = false
}
}
function hiLight(el) {//highlight place
if (dropShow) {
for (i = 0; i < el.parentElement.childNodes.length; i++) {
el.parentElement.childNodes(i).className = "link_record0"
}
el.className = "link_record1"
}
}
function CheckMe(el) {//replace with the selected item
document.all.text1.value = el.innerText
}
document.onclick = dropdownHide
function listsearch() {
if (dropShow) {
} else {
currentID = value1
value1.style.visibility = "visible"
dropFadeIn()
}
var word = document.all.text1.value;
var l;
var childsnum = value1.childNodes.length;
for (l = 0; l < childsnum; l++) {
var s = value1.childNodes[l].innerText;
if (s.substring(0, word.length) == word)
hiLight(value1.childNodes[l]);
}
}
</script>
<body text="#000000">
<form id="form1" runat="server">
<table>
<tr>
<td>
<div class="link_box" onselectstart="return false" style="width: 98%;">
<div class="link_head" onclick="dropdown(value1)">
<table height="100%" cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td>
<div class="link_text">
<nobr><input id="text1" type="text" onkeyup="listsearch()"></input></nobr>
</div>
</td>
<td align="right" width="22">
<div onmouseup="this.className='link_arrow0'" class="link_arrow0" onmousedown="this.className='link_arrow1'"
onkeypress="this.className='link_arrow0'">
6</div>
</td>
</tr>
</table>
</div>
<div class="link_value" id="value1" style="width: 500px; height: 300px">
<div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText">
<label>
attach</label></div>
<div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText">
<label>
bea</label></div>
<div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText">
<label>
free</label></div>
<div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText">
<label>
jump</label></div>
<div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText">
<label>
lumb</label></div>
<div class="link_record0" onmouseover="hiLight(this)" onclick="CheckMe(this);document.all.form1.city.value=this.innerText">
<label>
luppy</label></div>
</div>
</div>
</td>
<td>
<input type="hidden" value="Please Select" name="city">
<input type="submit" value="ok">
</td>
</tr>
</table>
</form>
</body>
</html>
ListSearch.css:
FONT: 12px
}
TD {
FONT: 12px
}
DIV {
FONT: 12px
}
LABEL {
PADDING-RIGHT: 0px; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; PADDING-TOP: 3px; HEIGHT: 19px
}
.link_box {
CURSOR: default; TEXT-ALIGN: left;
}
.link_head {
BORDER-RIGHT: 2px inset; BORDER-TOP: 2px inset; BORDER-LEFT: 2px inset; WIDTH: 100%;
BORDER-BOTTOM: 2px inset; HEIGHT: 23px
}
.link_text {
PADDING-LEFT: 2px; BACKGROUND: #fff
}
.link_arrow0 {
BORDER-RIGHT: 2px outset; BORDER-TOP: 2px outset; BACKGROUND: buttonface;
FONT: 14px marlett; BORDER-LEFT: 2px outset; WIDTH: 22px;
BORDER-BOTTOM: 2px outset; HEIGHT: 19px; TEXT-ALIGN: center
}
.link_arrow1 {
BORDER-RIGHT: buttonshadow 1px solid; PADDING-RIGHT: 0px;
BORDER-TOP: buttonshadow 1px solid; PADDING-LEFT: 2px;
BACKGROUND: buttonface; PADDING-BOTTOM: 0px; FONT: 14px marlett;
BORDER-LEFT: buttonshadow 1px solid; WIDTH: 22px; PADDING-TOP: 2px;
BORDER-BOTTOM: buttonshadow 1px solid; HEIGHT: 19px; TEXT-ALIGN: center
}
.link_value {
BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FILTER: alpha(opacity:0);
VISIBILITY: hidden; OVERFLOW-X: hidden; OVERFLOW: auto; BORDER-LEFT: 1px solid;
BORDER-BOTTOM: 1px solid; POSITION: absolute
}
.link_record0 {
BORDER-TOP: #eee 1px solid; PADDING-LEFT: 2px; BACKGROUND: #fff;
WIDTH: 100%; COLOR: #000; HEIGHT: 20px
}
.link_record1 {
BORDER-TOP: #047 1px solid; PADDING-LEFT: 2px; BACKGROUND: #058;
WIDTH: 100%; COLOR: #fe0; HEIGHT: 20px
}
The sample is based on native code. I plan to build it by ASP.Net Ajax ScriptControl model in the future.