如果您不介意使用一个小的 jquery 插件,那么它可能会节省您的时间。我知道我曾经为我早期的一个项目使用 css 表达式和 javascript 解决方案在互联网上尝试所有建议,但它总是在一个或其他浏览器中中断,并且标题列宽和行列宽可能无法对齐动态数据长度。
链接到 GridViewScroll Demo 可以完美地完成这项工作。
这是我在我的应用程序中使用它的方式,它完美无缺。对于类似的问题,请在 SO 上参考我的另一个 answer。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="gridviewScroll.min.js"></script>
<link href="GridviewScroll.css" rel="stylesheet" />
function pageLoad(sender, args) {
gridviewScroll ();
}
function gridviewScroll() {
gridView1 = $('#GridView1').gridviewScroll({
width: 915,
height: 449,
railcolor: "#F0F0F0",
barcolor: "#CDCDCD",
barhovercolor: "#606060",
bgcolor: "#F0F0F0",
freezesize: 5,
arrowsize: 30,
varrowtopimg: "../../../images/arrowvt.png",
varrowbottomimg: "../../../images/arrowvb.png",
harrowleftimg: "../../../images/arrowhl.png",
harrowrightimg: "../../../images/arrowhr.png",
headerrowcount: 1,
onScrollVertical: function (delta) {
// store the scroll offset outside of this function in a hidden field and restore if you want to maintain vertical scroll position
},
onScrollHorizontal: function (delta) {
//store the scroll offset outside of this function in a hidden field and restore if you want to maintain horizontal scroll position
}
});
}
还有关于冻结网格标题在我的应用程序中的外观的屏幕打印。如果您有一个冗长的行数据,您可以事件冻结网格的某些列。从图像中,灰色的列是在我的应用程序中被冻结的列。