日期:2014-05-19  浏览次数:20960 次

XtraGrid中如何冻结列(行)
请问大虾们,XtraGrid能否冻结某一行或列
如果能,怎么做到

------解决方案--------------------
一、锁定列
1、先在网页上添加一个ID为DataGrid_container的容器
<DIV id= "DataGrid_Container " > <DIV> 并在容器中添加一个DataGrid
设定容器的样式(指定为DataGrid_Container容器)
DIV#DataGrid_Container{
OVERFLOW: auto; WIDTH: 600px; HEIGHT: 252px;
}
没有该样式,滚动条就不会出现(注意设置适当的宽度和高度)。
2、设定锁定样式
.Lock_Col {LEFT: expression(document.getElementById( "DataGrid_Container ").scrollLeft); POSITION: relative;
}
3、在网页的 <HEAD> </HEAD> 之间添加如下代码:
<SCRIPT type= "text/javascript ">
function lockCol(Table_ID)
{
var table = document.getElementById(Table_ID);
var cTR = table.getElementsByTagName( "TR ");
for (i = 0; i < cTR.length; i++)
{
var tr = cTR.item(i);
for(j = 0; j < 4; j++)
{
tr.cells[j].className = 'Lock_Col '//将j列样式设定为Lock_Col,该列被锁定
}
}
}
</SCRIPT>
例如单独锁定某列:cTR.item(0).cells[5].className = 'Lock_Col '
上例中对0~3列的锁定即完成了。
二、锁定标题栏
1、添加样式
.Lock_Header
{
POSITION: relative;
Z-INDEX: 30; TOP: expression(document.getElementById( "DataGrid_Container ").scrollTop-2);
}
2、定义DataGrid的HEADER的CssClass为该样式即可
<HeaderStyle CssClass= "Lock_Header "> </HeaderStyle>
------解决方案--------------------
XtraGrid的GridView中的Columns里面有Fixed属性
将其设置为Left,或Right
你试一下就知道效果了