以JSon来实现TextBox可选择可输入

 SOURCE:http://www.cnblogs.com/mickeychang/archive/2009/04/18/1438520.html

     这里只是把主要的代码贴出来,不再进行过多的说明,重要的地方以注释的方式进行说明。
    <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 οnclick=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" οnfοcus="ShowBdzDiv()" runat="server"></asp:TextBox>

这里要说明的是,这里只实现了下拉选择项的点击选择,不能使用键盘操作。

 

本文转自我的163的博客。为了让自己的技术经验有更多的人分享,我会逐步把163的文章转到本博。

posted on 2009-04-18 10:03 常绍新 阅读(1307) 评论(8)   编辑 收藏 网摘


评论:
#1楼  2009-04-18 10:25 | skyjava [未注册用户]
沙发,顶


   回复   引用     
#2楼  2009-04-18 10:40 | billrobin       
编译器错误消息: CS0103: 当前上下文中不存在名称“BuildJson”

源错误:



行 9: <script type="text/javascript" language="javascript">
行 10:
行 11: var strJson = <%=BuildJson() %>
行 12:
行 13: function ShowBdzDiv() {



   回复   引用   查看     
#3楼  2009-04-18 11:32 | Ryan Gene       
页面上能同时存在两个这样的控件吗?看你的代码好像不行吧
   回复   引用   查看     
#4楼  2009-04-18 11:33 | ︶ㄣ木べ头       
BuildJson(),肯定是后台生成Json的函数啊,自己写个咯,这个也问
   回复   引用   查看     
#5楼  2009-04-18 13:42 | billrobin       
下次最好有demo下载,免得菜鸟读了还要自已写。
   回复   引用   查看     
#6楼  2009-04-18 15:14 | Allie       
难道你读了 不写。。。 代码是写出来的 不是看出来的!
   回复   引用   查看     
#7楼  2009-04-18 18:22 | 林天问       
@billrobin
完全的搞笑
   回复   引用   查看     
#8楼  2009-04-18 21:14 | daconglee       
使用Jquery实现的autocomplete功能很强的,不用自己在造轮子了
   回复   引用   查看     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值