纯脚本搞掂DataGrid表表头不动,表身滚动。
先看效果:
孟子以前也做过这事,不过他的方法前台后台都要弄,还是VB的(^-^),好像也不支持像我的自动生成列的DataGrid,所以还是自己动手,纯脚本搞掂,其实很简单,就几行:
function
ScrollDataGrid()
{
var tb = document.getElementById( " tbHeader " );
var dg = document.getElementById( " dgSearchResult " );
if (dg != null )
{
var dv = document.getElementById( " dvBody " );
var th = dg.rows[ 0 ];
for ( var i = 0 ; i < th.cells.length;i ++ )
th.cells[i].width = th.cells[i].clientWidth;
var tr = th.cloneNode( true );
// tr.applyElement(tb);
tb.createTHead();
var tbh = tb.tHead;
tbh.appendChild(tr);
tr = tbh.rows[ 0 ];
var td = tr.insertCell();
td.style.width = 19 ;
td.width = 19 ;
td.innerHTML = tr.cells[ 0 ].innerHTML;
th.style.display = 'none';
if (dg.scrollHeight < 300 )
dv.style.height = dg.scrollHeight * 1 + 2 ;
}
{
var tb = document.getElementById( " tbHeader " );
var dg = document.getElementById( " dgSearchResult " );
if (dg != null )
{
var dv = document.getElementById( " dvBody " );
var th = dg.rows[ 0 ];
for ( var i = 0 ; i < th.cells.length;i ++ )
th.cells[i].width = th.cells[i].clientWidth;
var tr = th.cloneNode( true );
// tr.applyElement(tb);
tb.createTHead();
var tbh = tb.tHead;
tbh.appendChild(tr);
tr = tbh.rows[ 0 ];
var td = tr.insertCell();
td.style.width = 19 ;
td.width = 19 ;
td.innerHTML = tr.cells[ 0 ].innerHTML;
th.style.display = 'none';
if (dg.scrollHeight < 300 )
dv.style.height = dg.scrollHeight * 1 + 2 ;
}
<
table
width
="100%"
border
="0"
id
="tbHeader"
cellpadding
="4"
cellspacing
="0"
>
</ table >
< div style ="OVERFLOW-Y: scroll; HEIGHT: 300px" id ="dvBody" >
< asp:datagrid id ="dgSearchResult" style ="BORDER-COLLAPSE: collapse" runat ="server" Width ="100%" CellPadding ="4" DataKeyField ="编号" BorderWidth ="1px" BorderStyle ="Solid" BorderColor ="RoyalBlue" GridLines ="None" >
< SelectedItemStyle ForeColor ="SlateGray" ></ SelectedItemStyle >
< ItemStyle VerticalAlign ="Middle" ></ ItemStyle >
< HeaderStyle HorizontalAlign ="Center" ></ HeaderStyle >
< Columns >
< asp:ButtonColumn Text ="选择" HeaderText ="<font face=webdings>6</font>" CommandName ="Delete" >
< HeaderStyle Wrap ="False" Width ="40px" ></ HeaderStyle >
< ItemStyle Wrap ="False" HorizontalAlign ="Center" ></ ItemStyle >
< FooterStyle Wrap ="False" ></ FooterStyle >
</ asp:ButtonColumn >
</ Columns >
</ asp:datagrid ></ div >
</ table >
< div style ="OVERFLOW-Y: scroll; HEIGHT: 300px" id ="dvBody" >
< asp:datagrid id ="dgSearchResult" style ="BORDER-COLLAPSE: collapse" runat ="server" Width ="100%" CellPadding ="4" DataKeyField ="编号" BorderWidth ="1px" BorderStyle ="Solid" BorderColor ="RoyalBlue" GridLines ="None" >
< SelectedItemStyle ForeColor ="SlateGray" ></ SelectedItemStyle >
< ItemStyle VerticalAlign ="Middle" ></ ItemStyle >
< HeaderStyle HorizontalAlign ="Center" ></ HeaderStyle >
< Columns >
< asp:ButtonColumn Text ="选择" HeaderText ="<font face=webdings>6</font>" CommandName ="Delete" >
< HeaderStyle Wrap ="False" Width ="40px" ></ HeaderStyle >
< ItemStyle Wrap ="False" HorizontalAlign ="Center" ></ ItemStyle >
< FooterStyle Wrap ="False" ></ FooterStyle >
</ asp:ButtonColumn >
</ Columns >
</ asp:datagrid ></ div >