我用的是textbox和listbox控件.由于textbox的textchanged事件即使设置为AUTOPOSTBACK也无法在输入过程中触发,所以我的思路是在textbox中输入模糊条件后,鼠标点击屏幕空白区域,触发textchanged事件和 客户端的body onclick事件.前者用于处理查询条件返回数据集,后者用于执行一个客户端javascript函数,用于显示包含listbox控件的div,并计算坐标.似乎只比google多了一个点击操作,在自己电脑上操作也没问题,但是处于局域网的其他电脑访问时,却明显有卡的迹象,并且鼠标点击并不总是触发 onclick事件,使div显示出来.
我想问下,javascript是否存在 时间控件,让显示div的这个函数定时执行,比如停止输入多少时间后触发.
另外,我用鼠标点击来使textchanged事件触发的这个方法,是否有别的更好的办法,或者用javascript来触发,而不是鼠标点机.我对javascript不太了解,希望大家能提供代码提示

解决方案 »

  1.   

    通过keyup事件来触发
    txt.Attribute.Add("onkeyup","javascript:your function");
      

  2.   

    建议用javascript+ajax+div来做,,之前我也做过
      

  3.   

    用ajax控件AutoComplete 
    参考
      

  4.   

    要弹出div,可以在textBox的onkeyup事件里面做,即按了一个键之后触发,就不用在body的click事件去调用js函数了。如果要使用时间控件,可以使用setTimeOut函数,如,window.setTimeOut(function(){alert(1)},1000),一秒后弹出1显示
    另外,还有setInterval函数,用法类似,每隔n毫秒触发一次,用clearInterval取消掉触发。
      

  5.   

     恩,这样就解决了DIV出现的问题,但现在最大的问题是必须鼠标点击或回车才能textchanged事件...4楼提供的连接我去看看先..
      

  6.   

    其实我昨天在网上查到 javascript来连接数据库的内容,但我不知道这个能不能配合AJAX
      

  7.   

    这个用ajax 控件 就可以完成 下载 ajax控件集 !安装好后 有个叫autocomplete控件!
      

  8.   

    也可以自己写调用websrvice 来完成
      

  9.   

    哎,就剩一个问题了..我现在是在服务端添加 TIMER控件,1.5秒检查一次TEXTBOX 文本的变化,然后执行操作..
    但是这样做,感觉还是不太好,既然TEXTBOX文本属性没有变化,即不执行查询,页面还是被刷新了,虽然有AJAX看不出页面抖动能否在客户端执行呢,比如KEYUP的时候才发送数据.