创建表头固定,表体可滚动的GridView(转)
本方法只需要設置一個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(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows XP SP3?转自作者:
- 下一篇: [转] STL中map用法详解