直接用服务端事件估计比较麻烦, 而且在web上实现它, 可能速度跟不上吧?我认为可以采用这个方案:采用xmlhttp方式与服务器的aspx文件进行交流
显示一个输入框和一个层, 层的style为overflow:auto, 就是超过显示区域大小时, 就采用滚动条的方式,
textbox有一个onchange事件, 一改变, 就从服务器读出相应的一些单词, 列在div里, 
你的焦点就是textbox所在的位置, 可以用javascript取得
要把它的值传给服务器, 也要通过js脚本取得后, 再与textbox的文本内容组合成一个xml字符串发给相应的aspx页面去处理, 然后取得返回的xml串动态地构建页面显示

解决方案 »

  1.   

    这个,我以前做过,不知适不适合你的要求,方案如下:
    1:在第一页面的控件上写一个onfocus()脚本.
    function control_focus(str)

        window.open("info.aspx?info="+str);//将关键字传到第二个页面.
    }
    2:在第二个页面info.aspx页接收info字段.查询数据库.同时用DataGrid绑定之
    4:DataGrid有一模板列,可以响应事件,通过该事件将必要的数据写到第一页面.
    方法是window.opener(.....).
      

  2.   

    不错,都是好思路。 panyee(快乐王子) 想问一下,我是想先得到焦点,再显示相应内容。textbox的焦点落在上面时,onchange事件还未发生,怎么办? dbserver(冰中的暖) 提到的,倒是个简便的方法。但一个录入界面中有好多textbox,这样怎么在Javascript中,用同一个函数呢?
      

  3.   

    not sure if this is what you want:
    <input type="text" name="txt1" value="1">
    <input type="text" name="txt2" value="2">
    <input type="text" name="txt3" value="3">
    <input type="text" name="txt4" value="5">
    <script>
    function TestFocus()
    {
      window.status = event.srcElement.value;
    }
    function window.onload()
    {
      var inputs = document.getElementsByTagName("INPUT");
      for (var i=0; i < inputs.length; i++)
        if (inputs[i].type == "text")
    inputs[i].onfocus=TestFocus;
    }
    </script>
      

  4.   

    如果你认为有必要取得焦点时有事件, 那就再加上 onfocus=xxx() 事件