纯脚本搞掂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 >