最好不是一次加载的,数据可能有几十万

解决方案 »

  1.   

    用Java脚本不行,我强烈建议你使用ajax下的速度绝对快,里面尽量不要用FOR循环(太占资源)几十万的数据肯定出不来。
      

  2.   

    采用ajax,用到哪里加载到哪里..
      

  3.   

    下 一个ajax 框架,可以实现你要的功能!!AjaxPro.dll 这个很不错
      

  4.   

    用prototype框架,但是进行分布式加载
      

  5.   

    使用ajaxpro给你个代码<body onclick="var popmenu=document.getElementById('contextmenu');popmenu.style.display='none';"
    onload="createFirst()" MS_POSITIONING="GridLayout">
    <form name="Form1" method="post" action="equipmentAjaxTree.aspx" id="Form1">
    <input type="hidden" name="__VIEWSTATE" value="dDwtMTI3OTMzNDM4NDs7PhxHeluQe4tD9SFJah31QU4fwaxl" />

    <script type="text/javascript" src="/sisreap/ajaxpro/prototype.ashx"></script>
    <script type="text/javascript" src="/sisreap/ajaxpro/core.ashx"></script>
    <script type="text/javascript" src="/sisreap/ajaxpro/converter.ashx"></script>
    <script type="text/javascript" src="/sisreap/ajaxpro/Ecclzjkp.EquipmentManage.equipmentAjaxTree,Ecclzjkp.ashx"></script> <TABLE id="Table5" height="100%" cellSpacing="0" cellPadding="0" width="100%" align="center"
    border="0">
    <tr>
    <td>
    <TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
    <TR>
    <TD class="mframe-t-left"></TD>
    <TD class="mframe-t-mid" vAlign="middle"><SPAN class="mframe-t-text">设备模板分类</SPAN></TD>
    <TD class="mframe-t-right"></TD>
    </TR>
    </TABLE>
    </td>
    </tr>
    <TR>
    <TD vAlign="top" height="100%">
    <div id="root"></div>
    <div id="contextmenu" style="DISPLAY: none; Z-INDEX: 99999; LEFT: 152px; WIDTH: 100px; POSITION: absolute; TOP: 112px; BACKGROUND-COLOR: #d3d3d3"
    align="center"><font style="FONT-FAMILY: 宋体" color="#d3d3d3">
    <table class="tbType" width="100%" align="center">
    <tr align="center">
    <td bgColor="#d3d3d3">
    <div><A id="contextmenu_sameadd">同级添加</A></div>
    </td>
    </tr>
    <tr align="center">
    <td bgColor="#d3d3d3">
    <div><A id="contextmenu_add">子类添加</A></div>
    </td>
    </tr>
    <tr align="center">
    <td bgColor="#d3d3d3">
    <div><A id="contextmenu_edit">修改</A></div>
    </td>
    </tr>
    <tr align="center">
    <td bgColor="#d3d3d3">
    <div><A id="contextmenu_del"  href="#">删除</A></div>
    </td>
    </tr>
    </table>
    </font>
    </div>
    </TD>
    </TR>
    </TABLE>
    </FONT></TD></TR></TABLE></form>
    <script language="jscript" type="text/jscript">
    /*---------------------------------------------------------------------------*\
    |  Subject:       TreeView                                                 |
    |  Version:       1.0                                                         |
    |  Author:        【孙学会】                                          |
    |  Created:       2007-1-11                                                   |
    |  LastModified:  2007-1-13                                                   |
    \*---------------------------------------------------------------------------*/
    function createNode(text,value,hasChild,father,emptyN)
    {
    var topdiv=document.createElement("div");
    topdiv.id="topdiv"+value;

    var empty=document.createElement("span");
    empty.style.width=emptyN;
    empty.id="empty"+value;
    topdiv.appendChild(empty);
    if (hasChild==0)
    {
    var topimg=document.createElement("img");
    topimg.src="../images/GridTree/open.gif";
    topimg.onclick=function () {openNode(value,father,topdiv,emptyN+20);};
    topimg.id="img"+value;
    topdiv.appendChild(topimg);
    // topdiv.onclike="close("+topdiv+")";

    var folderimg=document.createElement("img");
    folderimg.src="../images/GridTree/folder1.gif";
    topdiv.appendChild(folderimg);
    }
    else
    {
    var emptyimg=document.createElement("span");

    emptyimg.style.width=12;
    topdiv.appendChild(emptyimg);

    var fileimg=document.createElement("img");
    fileimg.src="../images/GridTree/file.gif";
    topdiv.appendChild(fileimg);
    }
    var topa=document.createElement("a");
    topa.href ="EquipmentUpdate.aspx?from=1&strDateID="+value;  //设置打开页面
    topa.target="right";              //设置打开方式或框价名称
    topa.innerHTML=text;
    topa.oncontextmenu= function()
    {
    var popmenu=document.getElementById("contextmenu");
    popmenu.style.display='';
    popmenu.style.POSITION="absolute";
    popmenu.style.left=event.x;
    popmenu.style.top=event.y;
    var poplink1=document.getElementById("contextmenu_sameadd");
    poplink1.href="EquipmentCreate.aspx?strparentDataId="+father;
    poplink1.target="right"; 
    var poplink2=document.getElementById("contextmenu_add");
    poplink2.href="EquipmentCreate.aspx?strparentDataId="+value;
    poplink2.target="right"; 
    var poplink3=document.getElementById("contextmenu_edit");
    poplink3.href="EquipmentUpdate.aspx?strDateID="+value;
    poplink3.target="right"; 
    var poplink4=document.getElementById("contextmenu_del");
    poplink4.onclick=
    function()
    {
    if(confirm("您要删除该设备吗?"))
    {
    var result=del(value);
    if(result==1)
    {
    var constdiv=document.getElementById("constdiv"+father);
    constdiv.removeChild(document.getElementById("topdiv"+value))
    // document.getElementById("img"+father).style.display='none';
    // var empty_tmp=document.getElementById("empty"+father);
    // var w=empty_tmp.width;
    // var empty_tmp1=document.createElement("span");
    // empty_tmp1.style.width=w+22;
    // empty_tmp.appendChild(empty_tmp1);
    }
    }
    };
    return false;
    };
    topdiv.appendChild(topa);

    var tophidden=document.createElement("hidden");
    tophidden.value=value;
    topdiv.appendChild(tophidden);
    return topdiv;
    }
    function openNode(nodeId,father,fatherNode,emptyN)
    {

    var dt=Ecclzjkp.EquipmentManage.equipmentAjaxTree.getdate(nodeId).value.Tables[0];
    var constdiv=document.createElement("div");
    constdiv.id=("constdiv"+nodeId);

    for (var i = 0;i < dt.Rows.length;i++)
    {

    var topdiv=createNode(dt.Rows[i].EM_NAME,dt.Rows[i].EM_ID,dt.Rows[i].ISCHILD,dt.Rows[i].EM_FA_ID,emptyN);
    constdiv.appendChild(topdiv);
    }
    if (nodeId!=1)
    {

    fatherNode.appendChild(constdiv);


    img=document.getElementById("img"+nodeId);
    img.src="../images/GridTree/close.gif";
    img.detachEvent(event,img.onclick)
    img.onclick=function (){Nodeclose(constdiv,this)}
    }


    return constdiv;
     
    }
    function createFirst()
    {
    var root = document.getElementById("root");
    var constdiv=openNode(1,0,root,0);
    constdiv.id="rootconstdiv";
    root.appendChild(constdiv);

    }
    function Nodeclose(div,img)
    {
    if(div.style.display!='none')
    {
    div.style.display='none';
    img.src="../images/GridTree/open.gif";
    }
    else
    {
    div.style.display='';
    img.src="../images/GridTree/close.gif";

    }
    }
    function del(id)
    {
    var result=Ecclzjkp.EquipmentManage.equipmentAjaxTree.Delete(id).value;
    return result;
    }
    </script>
    </body>