這裡只是把主要的代碼貼出來,不再進行過多的說明,重要的地方以注釋的方式進行說明。
<div id="pubDiv" style="background-position: #9999FF; font-size:12px; display:none; z-index:0; overflow:auto; position:absolute; border:#EDEDED 0px solid;background:#EDEDED;"></div>
<script type="text/javascript" language="javascript">
// 注意下面的等號右面,不能是“<%=BuildJson() %>”,因為JSon整體不能是字符串,同時最後也不能加分號:“;”
var strJson = <%=BuildJson() %>
function ShowBdzDiv() {
var dept = document.getElementById("<%=ddlDeptEdit.ClientID %>").value;
// 構建要下拉選擇的內容
var strHtml = "<table border=0px cellpadding=0 cellspacing=0 width=120px><tr>";
for (var key in strJson[dept]) {
strHtml += "<tr><td onclick=SetBdz()>" + key + "</td></tr>";
}
strHtml += "</table>";
var oBdz = document.getElementById("<%=txtBdz.ClientID %>");
var oDiv = document.getElementById("pubDiv");
oDiv.innerHTML = strHtml;
// 設置顯示的位置,並顯示
oDiv.style.top = "99px";
oDiv.style.left = "100px";
oDiv.style.display = "block";
}
// 當點擊選擇一個內容時
function SetBdz() {
var oBdz = document.getElementById("<%=txtBdz.ClientID %>");
// 把選擇內容設置到TextBox上,並隱藏下拉選擇項
oBdz.value = event.srcElement.innerText;
HiddenDiv();
}
// 隱藏下拉選擇項
function HiddenDiv() {
var oDiv = document.getElementById("pubDiv");
oDiv.style.display = "none";
}
</script>
。。。
<!--這裡只有一點要注意:設置AutoCompleteType="Disabled"-->
<asp:TextBox ID="txtBdz" AutoCompleteType="Disabled" onfocus="ShowBdzDiv()" runat="server"></asp:TextBox>
這裡要說明的是,這裡只實現了下拉選擇項的點擊選擇,不能使用鍵盤操作。