<!-- saved from url=http://www.51js.com/viewthread.php?tid=8393 --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD></HEAD><BODY><!--StartFragment--><TABLE cellSpacing=1 cellPadding=0 width=300 bgColor=#0099cc border=0>
<TBODY>
<TR>
<TH noWrap width="25%"><FONT color=#ffffff>123 </FONT></TH>
<TH noWrap width="25%"><FONT color=#ffffff>456 </FONT></TH>
<TH noWrap width="25%"><FONT color=#ffffff>789 </FONT></TH>
<TH noWrap width="25%"><FONT color=#ffffff>abc 
</FONT></TH></TR></TBODY></TABLE><SPAN 
style="OVERFLOW-Y: auto; WIDTH: 320px; HEIGHT: 100px">
<TABLE cellSpacing=1 cellPadding=0 width=300 bgColor=#0099cc border=0>
<TBODY>
<TR bgColor=#ffffff>
<TD width="25%">1</TD>
<TD width="25%">4</TD>
<TD width="25%">7</TD>
<TD width="25%">a</TD></TR>
<TR bgColor=#ffffff>
<TD>2</TD>
<TD>5</TD>
<TD>8</TD>
<TD>b</TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR>
<TR bgColor=#ffffff>
<TD>3 </TD>
<TD>6 </TD>
<TD>9 </TD>
<TD>c </TD></TR></TBODY></TABLE></SPAN><!--EndFragment--></BODY>
</HTML>

解决方案 »

  1.   

    <html><head><title>DefineGrid</title>
    <meta http-equiv=Content-Type content="text/html; charset=gb2312">
    <style type=text/css>
    BODY{font-size:9pt;}
    TD{font-size:9pt;}
    .Header{border-right:#555 1px solid;padding-right:4px;border-top:#FFF 1px solid;padding-left: 4px;background:#CCC;padding-bottom:4px;overflow:hidden;border-left:#FFF 1px solid;cursor:hand;padding-top:4px;border-bottom:#555 1px solid;white-space:nowrap}
    .Cell{border-right:#DDD 1px solid;padding-right:3px;border-top:#FFF 1px solid;padding-left:3px;background:#FFF;padding-bottom:3px;overflow:hidden;boder-left:#FFF 1px solid;padding-top:3px;border-bottom:#DDD 1px solid;white-space:nowrap}
    </style><script>
    //栏位标题(栏位名称#栏位宽度#资料对齐)
    var Header=new Array();
    for(iIndex=0;iIndex<10;iIndex++)
    {
    Header[iIndex]="字段"+iIndex+"#100#left";
    }
    //栏位资料(二维阵列)
    var CellArray=new Array();
    for(iIndex=0;iIndex<20;iIndex++)
    {
    var Cell=new Array();
    for(kIndex=0;kIndex<10;kIndex++)
    {
    Cell[kIndex]="行:"+iIndex+"字段:"+kIndex+">值";
    }
    CellArray[iIndex]=Cell;
    }
    </script>
    <script>
    var GridWidth=480;//资料表显示宽度(不含卷轴)
    var ShowLine=10;//资料表显示列数
    var CellHeight=21;//资料列高度
    var LockColumn=1;//要锁定的栏位数(由左至右)function WriteTable()
    {
    //写入表格
    var iGridWidth=GridWidth;
    var NewHTML="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td><div style=\"width:100%;overflow-x:scroll\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
    for(iIndex=0;iIndex<Header.length;iIndex++)
    {
    if(iIndex<LockColumn)
    {
    var strHeader=Header[iIndex].split("#");
    iGridWidth-=strHeader[1];
    var LockInfo=((iIndex+1)==LockColumn)?"解除锁定":"锁定此栏位";
    NewHTML+="<td><div class=\"Header\" style=\"width:"+strHeader[1]+"px;height:"+CellHeight+"px\" title=\""+LockInfo+"\" onclick=\"ResetTable("+iIndex+")\">"+strHeader[0]+"</div></td>";
    }
    }
    NewHTML+="</tr><tr><td colspan=\""+LockColumn+"\"><div id=\"DataFrame1\" style=\"position:relative;width:100%;overflow:hidden\"><div id=\"DataGroup1\" style=\"position:relative\"></div></div></td></tr></table></div></td><td valign=\"top\"><div style=\"width:"+iGridWidth+"px;overflow-x:scroll\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr>";
    for(iIndex=0;iIndex<Header.length;iIndex++)
    {
    if(iIndex>=LockColumn)
    {
    var strHeader=Header[iIndex].split("#");
    NewHTML+="<td><div class=\"Header\" style=\"width:"+strHeader[1]+"px;height:"+CellHeight+"px\" title=\"锁定此栏位\" onclick=\"ResetTable("+iIndex+")\">"+strHeader[0]+"</div></td>";
    }
    }
    NewHTML+="</tr><tr><td colspan=\""+(Header.length-LockColumn)+"\"><div id=\"DataFrame2\" style=\"position:relative;width:100%;overflow:hidden\"><div id=\"DataGroup2\" style=\"position:relative\"></div></div></td></tr></table></div></td><td valign=\"top\"><div id=\"DataFrame3\" style=\"position:relative;background:#000;overflow-y:scroll\" onscroll=\"SYNC_Roll()\"><div id=\"DataGroup3\" style=\"position:relative;width:1px;visibility:hidden\"></div></div></td></tr></table>";
    DefineGrid.innerHTML=NewHTML;
    ApplyData();
    }function ApplyData()
    {
    //写入资料
    var NewHTML="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    for(iIndex=0;iIndex<CellArray.length;iIndex++)
    {
    NewHTML+="<tr>";
    for(kIndex=0;kIndex<Header.length;kIndex++)
    {
    if(kIndex<LockColumn)
    {
    var strHeader=Header[kIndex].split("#");
    NewHTML+="<td><div class=\"Cell\" style=\"width:"+strHeader[1]+"px;height:"+CellHeight+"px;text-align:"+strHeader[2]+"\">"+CellArray[iIndex][kIndex]+"</div></td>";
    }
    }
    NewHTML+="</tr>";
    }
    NewHTML+="</table>";
    DataGroup1.innerHTML=NewHTML;
    var NewHTML="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
    for(iIndex=0;iIndex<CellArray.length;iIndex++)
    {
    NewHTML+="<tr>";
    for(kIndex=0;kIndex<Header.length;kIndex++)
    {
    if(kIndex>=LockColumn)
    {
    var strHeader=Header[kIndex].split("#");
    NewHTML+="<td><div class=\"Cell\" style=\"width:"+strHeader[1]+"px;height:"+CellHeight+"px;text-align:"+strHeader[2]+"\">"+CellArray[iIndex][kIndex]+"</div></td>";
    }
    }
    NewHTML+="</tr>";
    }
    NewHTML+="</table>";
    DataGroup2.innerHTML=NewHTML;
    DataFrame1.style.pixelHeight=CellHeight*ShowLine;
    DataFrame2.style.pixelHeight=CellHeight*ShowLine;
    DataFrame3.style.pixelHeight=CellHeight*ShowLine+CellHeight;
    DataGroup3.style.pixelHeight=CellHeight*(CellArray.length+1);
    }function ResetTable(n)
    {
    var iGridWidth=0;
    for(iIndex=0;iIndex<Header.length;iIndex++)
    {
    if(iIndex<(n+1))
    {
    var strHeader=Header[iIndex].split("#");
    iGridWidth+=parseInt(strHeader[1]);
    }
    }
    if(iGridWidth>GridWidth)
    {
    var Sure=confirm("\n锁定栏位的宽度大於资料表显示的宽\n\n度,这可能会造成版面显示不正常.\n\n\n您确定要继续吗?");
    }
    else
    {
    Sure=true;
    }
    if(Sure)
    {
    LockColumn=(LockColumn==n+1)?0:n+1;
    WriteTable();
    }
    }function SYNC_Roll()
    {
    DataGroup1.style.posTop=-DataFrame3.scrollTop;
    DataGroup2.style.posTop=-DataFrame3.scrollTop;
    }
    window.onload=WriteTable;
    </script></head>
    <body>
    <center>
    <table cellspacing=0 cellpadding=0 border=0>
      <tr>
        <td 
        style="border-right:white 2px inset;border-top:white 2px inset;border-left: white 2px inset; border-bottom:white 2px inset;background-color:scrollbar">
          <div id=DefineGrid></div>
        </td>
      </tr>
    </table>
    </center>
      

  2.   

    在表体中加入一个“div”行不行啊!
    <table>
    <tr>
    <th nowrap>表头1</th><th nowrap>表头2</th>
    </tr>
    <div id="tableBody" style ="height:50;overflow-y:auto;">
    <tr>
    <td nowrap>sfsf</td><td nowrap>gger</td>
    </tr>
    <tr>
    <td nowrap>sfsf</td><td nowrap>gger</td>
    </tr>
    <tr>
    <td nowrap>sfsf</td><td nowrap>gger</td>
    </tr>
    </div>
    </table>
      

  3.   

    看看:
    http://www.51windows.net/myjs/?u=/hw/asp/jsview.asp?id=314
      

  4.   

    除数据金刚的代码,表头和表体是一个表,其它的,都是把表体,放在... style ="height:50;overflow-y:auto;">
    里面,
    表头的宽和表体的宽要程序自身调节
      

  5.   

    收藏的一段代码,看看对你有用不?
    http://computer.mblogger.cn/awaysrain/posts/1680.aspx
      

  6.   

    凑凑热闹<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD>
    <SCRIPT LANGUAGE="JavaScript" defer>
    <!--
    span1.style.width=tb1.offsetWidth+20;
    tb0.style.width=tb1.offsetWidth;
    for (var i=1;i<5;i++)
    eval("th0"+i+".style.width=th1"+i+".offsetWidth");
    //-->
    </SCRIPT></HEAD><BODY >
    <TABLE cellSpacing=1 cellPadding=0 bgColor=#0099cc border=0 id=tb0>
    <tr>
    <th id="th01"></th><th id="th02"></th><th id="th03"></th><th id="th04"></th>
    </tr><TBODY>
    <TR>
    <TH><FONT color=#ffffff>123 </FONT></TH>
    <TH><FONT color=#ffffff>456 </FONT></TH>
    <TH><FONT color=#ffffff>789 </FONT></TH>
    <TH><FONT color=#ffffff>abc 
    </FONT></TH></TR></TBODY></TABLE><SPAN 
    style="OVERFLOW-Y: auto; HEIGHT: 100px" id=span1>
    <TABLE cellSpacing=1 cellPadding=0 bgColor=#0099cc border=0 id=tb1>
    <tr>
    <th id="th11"></th><th id="th12"></th><th id="th13"></th><th id="th14"></th>
    </tr><TBODY>
    <TR bgColor=#ffffff>
    <TD>1asdfasasdfasdfasfddf</TD>
    <TD>4asfd</TD>
    <TD>7asdfasfdasdfasdf</TD>
    <TD>aasdf</TD></TR>
    <TR bgColor=#ffffff>
    <TD>2</TD>
    <TD>5</TD>
    <TD>8</TD>
    <TD>b</TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR>
    <TR bgColor=#ffffff>
    <TD>3 </TD>
    <TD>6 </TD>
    <TD>9 </TD>
    <TD>c </TD></TR></TBODY></TABLE></SPAN></BODY>
    </HTML>
      

  7.   

    看看:
    http://www.51windows.net/myjs/?u=/hw/asp/jsview.asp?id=314