求解:Gridview固定列头并水平行滚动
小弟在做项目时遇到问题,当数据行数很多时希望在拖拉滚动条时列头固定,保持最上方显示;另外,就是当显示字段较多时,如何实现水平滚动条,而不是数据拥挤在一起? --------------------编程问答-------------------- http://topic.csdn.net/u/20090324/11/8451F630-ADC5-44BA-A6FD-A55645773663.html --------------------编程问答-------------------- 列冻结:DataGridViewColumn.Frozen 属性为True 时, 该列左侧的所有列被固定, 横向滚动时固定列不随滚动条滚动而左右移动。这对于重要列固定显示很有用。
// DataGridView1的左侧2列固定
DataGridView1.Columns[1].Frozen = true;
但是,DataGridView.AllowUserToOrderColumns = True 时,固定列不能移动到非固定列, 反之亦然。
行冻结
DataGridViewRow.Frozen 属性为True 时, 该行上面的所有行被固定, 纵向滚动时固定行不随滚动条滚动而上下移动。
// DataGridView1 的上3行固定
DataGridView1.Rows[2].Frozen = true;
--------------------编程问答-------------------- 感谢楼上帮忙,只是,我是用ASP.NET开发,不是DataGridView,是GridView。而且#1楼大哥,你的解释虽然很好,只是有没有个通俗易懂的办法,我想知道。继续等待 --------------------编程问答-------------------- 使用方法(设置FixRowColumn复合属性):
FixRowType - 需要固定的行的RowType(用逗号“,”分隔)
FixRowState - 需要固定的行的RowState(用逗号“,”分隔)
FixRows - 需要固定的行的索引(用逗号“,”分隔)
FixColumns - 需要固定的列的索引(用逗号“,”分隔)
TableWidth - 表格的宽度
TableHeight - 表格的高度
关键代码
css
/**//*固定行*/
.yy_sgv_fixRow
{}{
position: relative; top: expression(this.offsetParent.scrollTop - 1);
}
/**//*固定列*/
.yy_sgv_fixCol
{}{
position: relative; left: expression(this.offsetParent.scrollLeft - 1);
}
/**//*高优先级的固定*/
.yy_sgv_fixHigh
{}{
z-index: 9999;
}
/**//*低优先级的固定*/
.yy_sgv_fixLow
{}{
z-index: 1000;
}
// 固定列
if
(
!String.IsNullOrEmpty(this._sgv.FixRowColumn.FixColumns)
&&
Array.Exists(this._sgv.FixRowColumn.FixColumns.Split(','), delegate(string s) { return s == gvtc.ColumnIndex.ToString(); })
)
{
i++;
Helper.Common.SetAttribute(tc, "class", "yy_sgv_fixCol", AttributeValuePosition.Last, ' ');
}
--------------------编程问答-------------------- http://lesterlester.iteye.com/blog/1911971 这个的方法来类推~ 可以试试
补充:.NET技术 , C#