求解:Gridview固定列头并水平行滚动

「已注销」 2012-10-24 03:50:40
小弟在做项目时遇到问题,当数据行数很多时希望在拖拉滚动条时列头固定,保持最上方显示;另外,就是当显示字段较多时,如何实现水平滚动条,而不是数据拥挤在一起?
...全文
235 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lesterlester 2013-07-23
  • 打赏
  • 举报
回复
http://lesterlester.iteye.com/blog/1911971 这个的方法来类推~ 可以试试
  • 打赏
  • 举报
回复
使用方法(设置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, ' ');
}

「已注销」 2012-10-24
  • 打赏
  • 举报
回复
感谢楼上帮忙,只是,我是用ASP.NET开发,不是DataGridView,是GridView。而且#1楼大哥,你的解释虽然很好,只是有没有个通俗易懂的办法,我想知道。继续等待
寂小魔 2012-10-24
  • 打赏
  • 举报
回复
列冻结:
DataGridViewColumn.Frozen 属性为True 时, 该列左侧的所有列被固定, 横向滚动时固定列不随滚动条滚动而左右移动。这对于重要列固定显示很有用。
// DataGridView1的左侧2列固定
DataGridView1.Columns[1].Frozen = true;

但是,DataGridView.AllowUserToOrderColumns = True 时,固定列不能移动到非固定列, 反之亦然。
行冻结
DataGridViewRow.Frozen 属性为True 时, 该行上面的所有行被固定, 纵向滚动时固定行不随滚动条滚动而上下移动。
// DataGridView1 的上3行固定
DataGridView1.Rows[2].Frozen = true;

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧