本方法只需要设置一个GridView的宽度,其它宽度不需要设置。测试环境:IE6,Firefox通过。

C#

<%@ Page Language="C#" AutoEventWireup="true" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  // 计算数据,完全可以从数据看取得
  ICollection CreateDataSource( )
  {
    System.Data.DataTable dt = new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
    dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
    dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));

for (int i = 0; i < 50; i++)
    {
      System.Random rd = new System.Random(Environment.TickCount * i); ;
      dr = dt.NewRow();
      dr[0] = "班级" + i.ToString();
      dr[1] = "【孟子E章】" + i.ToString();
      dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
      dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
      dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
      dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
      dt.Rows.Add(dr);
    }
    System.Data.DataView dv = new System.Data.DataView(dt);
    return dv;
  }

protected void Page_Load( object sender, EventArgs e )
  {
    if (!IsPostBack)
    {
      GridView1.Attributes.Add("style", "table-layout:fixed");
      GridView1.DataSource = CreateDataSource();
      GridView1.DataBind();
    }
  }
 
</script>

<script type="text/javascript">
function s()
{
 var t = document.getElementById("<%=GridView1.ClientID%>");
 var t2 = t.cloneNode(true)
 for(i = t2.rows.length -1;i > 0;i--)
 t2.deleteRow(i) 
 t.deleteRow(0) 
 a.appendChild(t2)
}
window.onload = s
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>创建表头固定,表体可滚动的GridView</title>
</head>
<body>
  <form id="Form1" runat="server">
    <table>
      <tr>
        <td>
          <div id="a">
          </div>
          <div style="overflow-y: scroll; height: 200px">
            <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
              GridLines="Both" CellPadding="4" Width="560">
              <HeaderStyle BackColor="#EDEDED" Height="26px" />
            </asp:GridView>
          </div>
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

VB.NET

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">
  Function CreateDataSource() As ICollection
    Dim dt As System.Data.DataTable = New System.Data.DataTable
    Dim dr As System.Data.DataRow
    dt.Columns.Add(New System.Data.DataColumn("学生班级", GetType(System.String)))
    dt.Columns.Add(New System.Data.DataColumn("学生姓名", GetType(System.String)))
    dt.Columns.Add(New System.Data.DataColumn("语文", GetType(System.Decimal)))
    dt.Columns.Add(New System.Data.DataColumn("数学", GetType(System.Decimal)))
    dt.Columns.Add(New System.Data.DataColumn("英语", GetType(System.Decimal)))
    dt.Columns.Add(New System.Data.DataColumn("计算机", GetType(System.Decimal)))
    Dim i As Integer = 0
    While i < 50
      Dim rd As System.Random = New System.Random(Environment.TickCount * i)

dr = dt.NewRow
      dr(0) = "班级" + i.ToString
      dr(1) = "【孟子E章】" + i.ToString
      dr(2) = System.Math.Round(rd.NextDouble * 100, 2)
      dr(3) = System.Math.Round(rd.NextDouble * 100, 2)
      dr(4) = System.Math.Round(rd.NextDouble * 100, 2)
      dr(5) = System.Math.Round(rd.NextDouble * 100, 2)
      dt.Rows.Add(dr)
      System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
    End While
    Dim dv As System.Data.DataView = New System.Data.DataView(dt)
    Return dv
  End Function

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
    If Not IsPostBack Then
      GridView1.Attributes.Add("style", "table-layout:fixed")
      GridView1.DataSource = CreateDataSource()
      GridView1.DataBind()
    End If
  End Sub

</script>

<script type="text/javascript">
function s()
{
 var t = document.getElementById("<%=GridView1.ClientID%>");
 var t2 = t.cloneNode(true)
 for(i = t2.rows.length -1;i > 0;i--)
 t2.deleteRow(i) 
 t.deleteRow(0) 
 a.appendChild(t2)
}
window.onload = s
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>创建表头固定,表体可滚动的GridView</title>
</head>
<body>
  <form id="Form1" runat="server">
    <table>
      <tr>
        <td>
          <div id="a">
          </div>
          <div style="overflow-y: scroll; height: 200px">
            <asp:GridView ID="GridView1" runat="server" Font-Size="12px" BackColor="#FFFFFF"
              GridLines="Both" CellPadding="4" Width="560">
              <HeaderStyle BackColor="#EDEDED" Height="26px" />
            </asp:GridView>
          </div>
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

转载于:https://www.cnblogs.com/footleg/archive/2008/05/05/1183989.html

创建表头固定,表体可滚动的GridView(转)相关推荐

  1. table表头固定表体滚动

    实际的项目中需要用到弹出框包含表格时,万一表格很长不方便显示,这时就需要滚动表格,那么怎么才能实现呢? 如下,是用纯css实现的滚动表格(但是firefox和360极速模式下存在兼容性问题,有待提高) ...

  2. antd 设置表头属性_解决react使用antd table组件固定表头后,表头和表体列不对齐以及配置fixed固定左右侧后行高度不对齐...

    一.固定表头后表体列和表头不对齐 此问题可能在antd3.24.0版本之前都存在,反正3.16.2版本是存在这个问题的,如果是3.24.0之前的版本估计只能通过修改css样式解决. 按照官网说的: 1 ...

  3. antd table动态表头_解决react使用antd table组件固定表头后,表头和表体列不对齐以及配置fixed固定左右侧后行高度不对齐...

    1.固定表头后表体列和表头不对齐 此问题可能在antd3.24.0版本以前都存在,反正3.16.2版本是存在这个问题的,若是是3.24.0以前的版本估计只能经过修改css样式解决.css 按照官网说的 ...

  4. table表头固定,底部可滚动

    需求:实现table表头固定,表体可滚动 思路: tbody使用display:block,固定高度,并设置over-y:scroll, thead和tr,使用display:table,使用tabl ...

  5. el-table在有些电脑上显示问题(表头与表体不对齐gutter列导致得)

    el-table在个别电脑上得表头与表体不对齐(是因为没有滚动条时表头得gutter列得width为17px引起得) 其中gutterHidden初始默认为false <el-table :cl ...

  6. 再谈table组件:固定表头和表列

    前言 本文介绍内容包括: Element UI 实现表头表列固定思考与总结 translate3d如何实现表头表列固定 书承上文,在前文[Vue进阶]青铜选手,如何自研一套UI库中介绍了Vue组件库的 ...

  7. 实现固定表头和表列的table组件

    前端的table在设置overflow后横向.纵向滚动.但数据比较多时,为了查看方便,希望能在纵向滚动时固定表头,在横向滚动时在左边或右边固定特定表列,这是原生不支持的. 目录 实际效果 设计思路 普 ...

  8. uniapp 微信小程序 ui-table 表头固定,可缩放,实现

    效果图 表头固定,可缩放效果 前言 用到的组件: 使用uniapp内置组件 movable-view和movable-area实现表格缩放 使用uni-table 实现表格渲染(自带多选,没有头固定功 ...

  9. html table表头说明,HTML table表头固定

    HTML table表头固定 说说我在最近项目中碰到的css问题吧,作为问题知识集合总结笔记: table tbody { display: block; height: 200px; overflo ...

最新文章

  1. git rollback代码都没了_Git使用总结
  2. [YTU]_2635(P4 游戏中的Human角色)
  3. mongodb 学习笔记 2 --- 修改器
  4. jsf集成spring_Spring和JSF集成:导航
  5. mybatis学习(39):动态sql片段
  6. Gartner:PaaS 和平台架构领域的 4 大趋势 | 技术头条
  7. 解决jodconverter 2.2.1版本不支持docx、xlsx、pptx转换成PDF格式异常
  8. 精品资源:40个实用的 PSD 贴纸模板《下篇》
  9. LeetCode刷题(28)
  10. Intel® Math Kernel Library (Intel® MKL)
  11. Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
  12. Java:用Lambda表达式简化代码一例
  13. 线性回归 + 基础优化算法 动手学深度学习v2 pytorch
  14. web SQL注入漏洞
  15. 主流数据库对比,主流数据库性能、选型对比
  16. 如何用Java将DWG和DXF文件转换为PDF?看了这篇就懂了
  17. [渝粤教育] 中山大学 健康评估 参考 资料
  18. matlab不显示x,y,z轴
  19. 陕西师范大学第七届程序设计竞赛网络同步赛 D ZQ的睡前故事(java)
  20. 基于spark的车辆分析

热门文章

  1. 数学--数论--莫比乌斯反演
  2. HDU2066:一个人的旅行(Dijkstra)
  3. YoloAll V2发布,集成所有主流Yolo模型于一身
  4. 嵌入式基础之----C语言
  5. 深入理解C语言——#define宏和枚举的区别
  6. 现金贷平台倒闭后,借的钱是否可以不还?
  7. 将MATLAB中的图像信息用到Vivado中
  8. MATLAB 牛顿迭代算法
  9. android+busybox+编译,Android版busybox编译
  10. python异步io 队列_python 学习笔记九 队列,异步IO