首页 / 网页编程 / ASP.NET / 以JSon来实现TextBox可选择可输入
        
            以JSon来实现TextBox可选择可输入2011-07-19 博客园 常绍新这里只是把主要的代码贴出来,不再进行过多的说明,重要的地方以注释的方式进行说明。<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>这里要说明的是,这里只实现了下拉选择项的点击选择,不能使用键盘操作。