小弟在做项目时遇到问题,当数据行数很多时希望在拖拉滚动条时列头固定,保持最上方显示;另外,就是当显示字段较多时,如何实现水平滚动条,而不是数据拥挤在一起?

解决方案 »

  1.   

    http://topic.csdn.net/u/20090324/11/8451F630-ADC5-44BA-A6FD-A55645773663.html
      

  2.   

    列冻结:
    DataGridViewColumn.Frozen 属性为True 时, 该列左侧的所有列被固定, 横向滚动时固定列不随滚动条滚动而左右移动。这对于重要列固定显示很有用。
    // DataGridView1的左侧2列固定
    DataGridView1.Columns[1].Frozen = true;
    但是,DataGridView.AllowUserToOrderColumns = True 时,固定列不能移动到非固定列, 反之亦然。
    行冻结
    DataGridViewRow.Frozen 属性为True 时, 该行上面的所有行被固定, 纵向滚动时固定行不随滚动条滚动而上下移动。
    // DataGridView1 的上3行固定
    DataGridView1.Rows[2].Frozen = true;
      

  3.   

    感谢楼上帮忙,只是,我是用ASP.NET开发,不是DataGridView,是GridView。而且#1楼大哥,你的解释虽然很好,只是有没有个通俗易懂的办法,我想知道。继续等待
      

  4.   

    使用方法(设置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, ' ');
                }
      

  5.   

    http://lesterlester.iteye.com/blog/1911971  这个的方法来类推~  可以试试