在网上使用高手的代码,可以在一般网页窗口固定gridview的表头,如下:<!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>GridView固定表头 清清月儿http://blog.csdn.net/21aspnet </title>
        <style> 
.Freezing 
   { 
    
   position:relative ; 
   table-layout:fixed;
   top:expression(this.offsetParent.scrollTop);   
   z-index: 10;
   } .Freezing th{text-overflow:ellipsis;overflow:hidden;white-space: nowrap;padding:2px;}
</style> 
</head>
<body style="font-size=12px">
    <form id="form1" runat="server">
    <div style="overflow-y: scroll; height: 200px;width:300px" id="dvBody">
                   <asp:GridView ID="GridView1" runat="server"    AutoGenerateColumns="False" CellPadding="3" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
                        OnRowUpdating="GridView1_RowUpdating" OnRowCancelingEdit="GridView1_RowCancelingEdit" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" Font-Size="12px" OnRowCreated="GridView1_RowCreated"  >
                        <FooterStyle BackColor="White" ForeColor="#000066" />
                        <Columns>
                            <asp:BoundField DataField="身份证号码" HeaderText="编号" ReadOnly="True" />
                            <asp:BoundField DataField="邮政编码" HeaderText="邮政编码" SortExpression="邮政编码" />
                            <asp:BoundField DataField="家庭住址" HeaderText="家庭住址"  />
                            <asp:BoundField DataField="姓名" HeaderText="姓名"  />
                            
                        </Columns>
                        <RowStyle ForeColor="#000066" />
                        <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
                        <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left"  CssClass="ms-formlabel DataGridFixedHeader"/>
                        <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" CssClass="Freezing"/>
                    </asp:GridView>
        </div>    </form>
</body>
</html>
但是以上代码在弹出窗口却无法实现固定表头的效果,请问高手,该如何解决此问题,谢谢!

解决方案 »

  1.   

    你的意思是在弹出框里的GRIDVIEW 不能固定表头?
      

  2.   

    是,弹出窗口里面有一个gridview控件,使用该代码无法固定表头,但是在非弹出窗口使用以上代码却可以固定表头.郁闷!
      

  3.   

    to wuyq11:
    我在gridview创建一个可链接模板列
            <asp:GridView ID="GV" runat="server" AutoGenerateColumns="False" Height="1px"
                Style="z-index: 100; left: 8px; position: absolute; top: 8px" Width="800px" CellPadding="4" Font-Size="Small" ForeColor="#333333" DataKeyNames="报表期数">
                <Columns>
                    <asp:TemplateField HeaderText="报表期数">
                        <ItemTemplate>
                        <a href="<%# GetUserPageScp(Eval("报表期数"),Eval("填报机构编码")) %>"><%#Eval("报表期数")%></a>
                        </ItemTemplate>
                        <ItemStyle Width="60px" />
                    </asp:TemplateField>
                    <asp:BoundField DataField="填报机构编码" HeaderText="填报机构编码" >
                        <ItemStyle Width="60px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="填报机构名称" HeaderText="填报机构名称" >
                        <ItemStyle Width="100px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="在编人数" HeaderText="在编人数" >
                        <ItemStyle Width="40px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="应出勤人数" HeaderText="应出勤人数" >
                        <ItemStyle Width="40px" Wrap="True" />
                    </asp:BoundField>
                    <asp:BoundField DataField="缺勤人数" HeaderText="缺勤人数">
                        <ItemStyle Width="40px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="备注" HeaderText="备注">
                        <ItemStyle Width="60px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="状态" HeaderText="状态">
                        <ItemStyle Width="40px" />
                    </asp:BoundField>
                </Columns>
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="#EFF3FB" />
                <EditRowStyle BackColor="#2461BF" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" CssClass="Freezing" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>在后台使用一函数弹出窗口    Protected Function GetuserPageScp(ByVal Bbqs As String, ByVal Tbjgbm As String) As String
            Return "javascript: window.showModalDialog('" + Me.Page.ResolveUrl("Bbmx.aspx?Bbqs=" + Bbqs) + "&Tbjgbm=" + Tbjgbm + "','','dialogHeight:700px;dialogWidth:900px');"
        End Function
      

  4.   

    IE 8下这个方法不适用。可以用Jquery实现。