主要利用了LEFT和TOP 属性,使之浮动在上面,通过CSS控制
本文系本人原创,如有转载,请注明出处
Imports System.Data
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
initData()
End If
End Sub
Sub initData()
Dim i As Integer
Dim dtData As New DataTable
dtData.Columns.Add("1")
dtData.Columns.Add("2")
dtData.Columns.Add("3")
dtData.Columns.Add("4")
dtData.Columns.Add("5")
dtData.Columns.Add("6")
dtData.Columns.Add("7")
dtData.Columns.Add("8")
dtData.Columns.Add("9")
dtData.Columns.Add("10")
For i = 0 To 9
dtData.Rows.Add()
dtData.Rows(i)("1") = "項目" + i.ToString
dtData.Rows(i)("2") = "項目" + i.ToString
dtData.Rows(i)("3") = "項目" + i.ToString
dtData.Rows(i)("4") = "項目" + i.ToString
dtData.Rows(i)("5") = "項目" + i.ToString
dtData.Rows(i)("6") = "項目" + i.ToString
dtData.Rows(i)("7") = "項目" + i.ToString
dtData.Rows(i)("8") = "項目" + i.ToString
dtData.Rows(i)("9") = "項目" + i.ToString
Next
Me.GridView1.DataSource = dtData
Me.GridView1.DataBind()
End Sub
Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
Dim i As Integer = 0
Dim tcHeader As TableCellCollection = e.Row.Cells
Dim objtcRow As GridViewRow = e.Row
If e.Row.RowType = DataControlRowType.Header Then
tcHeader.Clear()
tcHeader.Add(New TableCell)
tcHeader(i).ColumnSpan = 10
objtcRow.Style.Add("display", "none")
\'======================================================
\'Row1
\'======================================================
objtcRow = New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
tcHeader = objtcRow.Cells
tcHeader.Clear()
i = 0
objtcRow.Attributes.Add("align", "center")
objtcRow.Attributes.Add("vlign", "middle")
objtcRow.Style.Add("z-index", "16")
\'A
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目A"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_rb FixTopLeftNormal"
tcHeader(i).Style.Add("width", "70px")
tcHeader(i).Style.Add("z-index", "1001")
tcHeader(i).Style.Add("font-weight", "normal")
i = i + 1
\'B
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目B"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'C
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目C"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'D
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目D"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'E
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目E"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'F
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目F"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'G
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目G"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'H
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目H"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'I
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "項目I"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_b FixTop"
tcHeader(i).Style.Add("font-weight", "normal")
tcHeader(i).Style.Add("width", "70px")
i = i + 1
\'編集
tcHeader.Add(New TableHeaderCell())
tcHeader(i).Text = "編集"
tcHeader(i).Attributes.Add("align", "center")
tcHeader(i).CssClass = "gvHeader border_lrb FixTopLeft"
tcHeader(i).Style.Add("z-index", "1001")
tcHeader(i).Style.Add("font-weight", "normal")
i = i + 1
Me.GridView1.Controls(0).Controls.Add(objtcRow)
End If
End Sub
End Class
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="main.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>無題のページ</title>
<link href="App_Data/common.css" rel="stylesheet" type="text/css" />
<style>
.FixTopLeft
{
position: relative;
left: expression(this.offsetParent.scrollLeft - (divGrid1.scrollWidth-683));
top: expression(this.offsetParent.scrollTop);
}
/* 固定TOP */
.FixTop
{
position: relative;
top: expression(this.offsetParent.scrollTop);
}
/* 固定LEFT */
.FixLeft
{
position: relative;
left: expression(this.offsetParent.scrollLeft - (divGrid1.scrollWidth-683));
}
/* 固定LEFT */
.FixLeftNormal
{
position: relative;
left: expression(this.offsetParent.scrollLeft);
}
/* 固定TOP LEFT */
.FixTopLeftNormal
{
position: relative;
left: expression(this.offsetParent.scrollLeft);
top: expression(this.offsetParent.scrollTop);
}
.btnSmall_gv1
{
border: solid 1px #40e0d0;
background-color: white;
width: 36px;
height: 16px;
font-size: 10px;
}
.gvHeader
{
background-color: #eaeaea;
}
.border_ltrb
{
border: solid 1px black;
}
/* 下 */
.border_b
{
border-left: solid 0px black;
border-top: solid 0px black;
border-right: solid 0px black;
border-bottom: solid 1px black;
}
/* 左 下 */
.border_lb
{
border-left: solid 1px black;
border-top: solid 0px black;
border-right: solid 0px black;
border-bottom: solid 1px black;
}
/* 左 右 下 */
.border_lrb
{
border-left: solid 1px black;
border-top: solid 0px black;
border-right: solid 1px black;
border-bottom: solid 1px black;
}
/* 右 下 */
.border_rb
{
border-left: solid 0px black;
border-top: solid 0px black;
border-right: solid 1px black;
border-bottom: solid 1px black;
}
/* 上 下 左*/
.border_ltb
{
border-left: solid 1px black;
border-top: solid 1px black;
border-right: solid 0px black;
border-bottom: solid 1px black;
}
/* 上 左*/
.border_lt
{
border-left: solid 1px black;
border-top: solid 1px black;
border-right: solid 0px black;
border-bottom: solid 0px black;
}
/* 上 左右*/
.border_lrt
{
border-left: solid 1px black;
border-top: solid 1px black;
border-right: solid 1px black;
border-bottom: solid 0px black;
}
/* 右 上 */
.border_rt
{
border-left: solid 0px black;
border-top: solid 1px black;
border-right: solid 1px black;
border-bottom: solid 0px black;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style="height:100px; width:100%; position:absolute ;left:0px;top:0px;">
</div>
<div style="width:100px; height:700px; left:0px; top:100px; position:absolute">
<!-- 链接到服务器。 -->
<A HREF="http://www.microsoft.com">Microsoft</A><br />
<!-- 链接到同目录的文件。 -->
<A HREF="#anchor">MicroHard</A><br />
<!-- 调用 JScript 函数 -->
<A HREF="javascript:window.open()">链接</A>
</div>
<div id="divGrid1" align="left" style="width:700px; height:300px ;left:100px; top:100px; position: absolute; overflow:scroll; border:solid 1px black" >
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="800px">
<Columns>
<asp:BoundField HeaderText="a" DataField="1" >
<ItemStyle Width="70px" CssClass="border_rb FixLeftNormal" />
</asp:BoundField>
<asp:BoundField HeaderText="b" DataField="2">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="3">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="4">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="5">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="6">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="7">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="8">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:BoundField DataField="9">
<ItemStyle Width="70px" CssClass="border_b"/>
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEDIT" runat="server" OnClick="btnEDIT_Click" CssClass="btnSmall_gv1" Text="編集" />
</ItemTemplate >
<ItemStyle Width="170px" CssClass="border_lrt FixLeft"/>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#C0C0FF" BorderColor="#FF80FF" BorderStyle="Solid" />
<AlternatingRowStyle BackColor="#FFC0C0" BorderColor="#FFC0FF" BorderStyle="Solid" />
</asp:GridView>
</div>
</div>
</form>
</body>
</html>