我在ASP.NET MVC框架中,利用页面View上用<table>展示数据,有一列为ID,数据已经显示出来,表格的外边有一个<input type="text">,要求是在文本框中随意输入ID的编号,没有Button按钮,点击回车键,如果<table>表格中有输入的ID时,光标显示到查询出输入的ID表格的那一个单元格上,并且带颜色,如果没有查询到就什么反应页没有就行了.不知道我这样描述大家应该可以明白我的意思吧!!!急求高手来给我解决下..有现成的实例就最好了,小弟想了好久都没弄出来,郁闷死了,急求!!!

解决方案 »

  1.   

    document.onkeypress监听event.keyCode;如果按下的是enter,那么判断input是否有值并为一个正确的数字。如果是,则搜索列表中的ID项,(最好在页面加载的时候,定义一个JS数组,由列表中的ID组成,顺序与页面上的一样)如果有,则得到该列在页面上的位置(offsetTop),然后重定位页面的scrollTop(具体该列要定位到那里,你自己看着办),并给该列添加一个不同的样式(事先要定义一个index存储该列的顺序值,以便重新定位的时候,好删除上次定位的列添加的样式)。
      

  2.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script type="text/javascript">
    function keyupFun(){
    document.onkeyup = function(event){
    var keyCode = window.event.keyCode;
    var array =  getElementsByClass("current_post", null, "div");   
    var currentItem = null;   
    if (array.length ==0 ){   
       return ;   
    }else{   
       currentItem = array[0];   
    }   
    // user press 'N' key   
    if (keyCode == 78){   
       if (currentItem.nextItem != null){   
           currentItem.nextItem.onclick();   
       }   
    }
    }
    }
    </script>
    </head>
    <body onload="keyupFun();">
    </body>
    </html>
      

  3.   

    你找到Enter建对应的ascii码,
    //键盘监听事件
    document.onkeyup = function(event){}
    //keyCode 当前键盘的值
    var keyCode = window.event.keyCode;
      

  4.   

    Enter的ascii码是13
    大哥上面的那代码还是没有看懂啊。。
    不知道var array =  getElementsByClass("current_post", null, "div")这几个参数的意思啊。。
    小弟刚开始学习这方面的知识。。
    能给我一个完整的例子让小弟研究下。。
    拼了。。加分。。
      

  5.   

    完成的Demo供小弟下载下。。研究下JS。。
    多谢了。。
      

  6.   


    functio show(){
        if(event.keyCode == 13){
            event.keyCode =9;
         }
    }document.onmouseup = show;我这个判断有点简单,
      

  7.   

    额。。难道就真的没有人给我个Demo。。
    急求啊。。分都加到100了啊。。哭哭。。
      

  8.   

    兼容FF\IE
    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>test</title>
    <script>
    function doSomeThing(o,e){
    var code = window.event?window.event.keyCode:e.which;
    if(code == 13){
    if(o.value!=""){
    var rows = document.getElementById("tb").rows;
    for(var i=0;i<rows.length;i++){//0表示第一行,如果有标题行,i从1开始
    if(rows[i].cells[0].innerText==o.value||rows[i].cells[0].textContent==o.value){
    rows[i].style.backgroundColor = '#cccccc';
    }else{
    rows[i].style.backgroundColor = '';
    }
    }
    }
    }
    }
    </script>
    </head><body>
    <input type="text" onkeyup="doSomeThing(this,event)"/>
    <table id="tb">
    <tr>
    <td>1</td><td>ID为1</td>
    </tr>
    <tr>
    <td>2</td><td>ID为2</td>
    </tr>
    <tr>
    <td>3</td><td>ID为3</td>
    </tr>
    </table>
    </body></html>
      

  9.   

    这个例子还有些帮助。。
    还有没有高手能给我一个基于ASP.NET MVC 的这个例子。。
    实现上面说的那俩个功能点。。
    感谢楼上的这位大哥。。
      

  10.   


    ASP.NET MVC 还不是HTML真搞不懂,难道在ASP.NET MVC里连JS都不能用了吗?我就喜欢自己写HTML JS,随便微软的技术怎么变,看到他生成的HTML,我就知道怎么改他的程序了
      

  11.   

    回楼上,我的意思是 asp.net mvc生成的也是HTML 通过JS照样可以修改的,也就是19楼的代码是完全可以的 =.=写一段JS不需要关心你后台程序是用什么开发的,你返回给浏览器的肯定也只能是一段符合标准的HTML代码
      

  12.   

    大哥,这个我明白..我关心的是我前面说的2个功能怎么实现?
    页面是HTML,JS肯定可以写了..呵呵。。
      

  13.   

    好吧  我承认我败了,我帮你写了一个 给你asp.net MVC输出的表格加一个ID属性 id="list",那个文本框的ID属性为 search在head里面加入:<style type="text/css">
    .red{ background-color:#FF0000;}
    </style>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    //文本框回车执行查询
    $("#search").keypress(function(e) {if(e.which==13) {Find();}});
    });
    function Find()
    {
    //取消所有以前设置的行
    $("#list tr").removeClass("red");
    var key=$("#search").val();

    //关键行着色
    if(key.length>0)
    $("td:first:contains('"+key+"')",$("#list tr")).parents("tr").addClass("red");
    }
    </script>
    测试页代码如下:需引用jquery框架<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style type="text/css">
    .red{ background-color:#FF0000;}
    </style>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    //文本框回车执行查询
    $("#search").keypress(function(e) {if(e.which==13) {Find();}});
    });
    function Find()
    {
    //取消所有以前设置的行
    $("#list tr").removeClass("red");
    var key=$("#search").val();

    //关键行着色
    if(key.length>0)
    $("td:first:contains('"+key+"')",$("#list tr")).parents("tr").addClass("red");
    }
    </script>
    </head>
    <body><input id="search" name="search" value="" />
    <table width="770" border="1" cellspacing="0" cellpadding="0" id="list">
      <tr>
        <td>1</td>
        <td>第一行</td>
      </tr>
      <tr>
        <td>2</td>
        <td>第二行</td>
      </tr>
      <tr>
        <td>3</td>
        <td>第三行</td>
      </tr>
    </table>
    </body>
    </html>
    写来写去还不是和7楼19楼的一样 
      

  14.   

    大哥你说的要引入JQUERY框架是哪个文件?
      

  15.   

    网上去下个jquerybaidu一下算了 给你链接吧http://download.pcpop.com/Down/39992.html把下到的 jquery-1.3.min.js改成jquery.js 顺便推荐一下jquery吧,开发速度真的很快,又不用考虑浏览器的兼容问题,好好学一下吧,对你的JS会有很大提升的
      

  16.   

    你想做的功能其实我很了解,不过编辑其实挺麻烦的
    要用到ajax技术,我也不太清楚你现在的开发水平原理就是 在页面载入的时候给每行加一个单击事件$("#list tr").click(function(){edit();})
    function edit()
    {
    }
    然后转化除主键列的其他列为input 下拉框等,让用户输入某个按钮提交后,用ajax技术把修改的数据提交到服务器,服务器返回修改成功的信息后,提示用户修改成功,并更新当前行的值这个估计我不能给你代码了。如果你是普通的asp.net Form窗体倒是很简单,GridView控件很容易实现这个功能真正想学习WEB开发, HTML CSS JS是基础,再学习下面向对象的思想,又回到我22楼说的话了,这样从asp.net 迁移到java php开发其实也很容易,1 2个月就转换过去了 =。=