初步设想是这样: 1.使用Ajax从后台查询数据库得到数据集 
2.转换为JSON格式字符串返回到前台页面 
3.前台页面使用Javascript解析数据集JSON字符串在页面上生成Table表格呈现给用户 因为业务需要,结果集数据量可能会较大,一般有1000条以上甚至2000多条。(不要问为什么不把这么多数据分页显示,前面说了是业务原因用户必须要在一页上看到全部数据) 生成、解析JSON字符串都不是问题,问题在于怎么填充数据生成table表格。我自己知道的有两种方法: 1.把数据加上 <tr> <td>等等标签,拼成一个完整的HTML表格字符串,然后用innerHTML或者outerHTML等等将这个大字符串填充到页面 2.取得table表格对象,然后循环用insertRow插入行,再循环用insertCell在刚才插入的行上插入单元格,最后设置单元格文本内容请教各位给出1、2两种方法

解决方案 »

  1.   

    建议用第一种方法,用一个数组来装比如每一行的html字符,最后用join()函数拼到容器里。
    但是数据这样多,估计怎么样的都快不了。
      

  2.   

    理论上就是分页(多次 ajax 请求, 分段把数据插入到  table 里)一次请求大量数据.本身就是设计不合理.页面上要看到全部,又不是规定你要一次性取出.
      

  3.   

    把数据插入到 table 里,理论上使用 组合串,再 innerHTML 会比较好.我使用 jQuery 的 after 方法来插入.
      

  4.   

    1.把数据加上 <tr> <td>等等标签,拼成一个完整的HTML表格字符串,然后用innerHTML或者outerHTML等等将这个大字符串填充到页面 在一个对象里面组合好,让一次性innerhtml比较合适、
      

  5.   

    <html>
    <head>
    <title></title>
    <script src="js/jquery.corners.min.js" ></script>
    <script src="js/jquery.js"></script>
    <script src="js/jquery.validator.js"></script>
    <script type="text/javascript">
    var dddd=0;
    function createT(){
    dddd=dddd+1;
    var tbody=document.getElementById("tableid");
    for(var i=tbody.children.length;i> 0;i--){
    tbody.children[i-1].removeNode(true);
    }
    for(var i=0;i<10;i++){
    var tr=document.createElement("TR");
    for(var j=0;j<10;j++){
    var td=document.createElement("TD");
    var text=document.createTextNode("text"+j+"i="+i+"dddd="+dddd); 
    td.appendChild(text);
    tr.appendChild(td);
    }
    tbody.appendChild(tr);
    }
    }
    </script>
    </head>
    <body>
    <input type="button" value="create table" onclick="createT()" />
    <table>
    <tr><td>zhi</td></tr>
    <tbody id="tableid"> </tbody>
    </table>
    </body>
    </html>