【问题标题】:Freeze Gridview header冻结 Gridview 标题
【发布时间】:2021-01-24 23:40:27
【问题描述】:

我希望标题冻结在顶部,因为我有超过 9000 行。我试过“固定”,但这看起来不是最好的。它固定在卷轴上,但看起来像是漂浮在原地。我该怎么做才能让顶部冻结?我尝试了一种 CSS 样式,但它也没有冻结标题。如果我可以冻结页眉,下一步就是冻结屏幕上的页脚,这样就可以创建新条目,而不必进入 9000 行的底部。

<asp:GridView id="myGridView" runat="server" AutoGenerateColumns="False" 
    CssClass="Grid"
    Overflow="auto"    
    AllowSorting="False" 
    CellPadding="4" 
    ForeColor="#333333" 
    GridLines="None"
    ShowFooter="True"
    DataKeyNames="RMANumber"  width="99%">
    <AlternatingRowStyle BackColor="LightGray" />
    <Columns>

    <asp:TemplateField HeaderText="RMA Number"  HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left">
        <ItemTemplate>
            <asp:Label id="lblRMANumber" runat="server" ReadOnly="false" Text='<%# DataBinder.Eval(Container, "DataItem.RMANumber") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:TextBox id="txtEditRMANumber" size="16" runat="server" ReadOnly="false" Text='<%# DataBinder.Eval(Container, "DataItem.RMANumber") %>'></asp:TextBox>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox id="txtAddRMANumber" size="16" runat="server"></asp:TextBox>
        </FooterTemplate>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Decon Form? Y/N" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left">
        <ItemTemplate>
            <asp:Label id="lblDeconForm" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.DeconForm") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:TextBox id="txtEditDeconForm" size="16" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.DeconForm") %>'></asp:TextBox>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox id="txtAddDeconForm" size="16" runat="server"></asp:TextBox>
        </FooterTemplate>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Customer" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left">
        <ItemTemplate>
            <asp:Label id="lblCustomer" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Customer") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:TextBox id="txtEditCustomer" size="16" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Customer") %>'></asp:TextBox>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox id="txtAddCustomer" size="16" runat="server"></asp:TextBox>
        </FooterTemplate>
    </asp:TemplateField>

    <asp:TemplateField HeaderText="Problem / Solution Found" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left">
        <ItemTemplate>
            <asp:Label id="lblProblemSolutionFound" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ProblemSolutionFound") %>'></asp:Label>
        </ItemTemplate>
        <EditItemTemplate>
            <asp:TextBox id="txtEditProblemSolutionFound" size="16" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ProblemSolutionFound") %>'></asp:TextBox>
        </EditItemTemplate>
        <FooterTemplate>
            <asp:TextBox id="txtAddProblemSolutionFound" size="16" runat="server"></asp:TextBox>
            <asp:Button id="btnAdd" runat="server" Text="Add" CommandName="Add" AutoPostBack="False"  ></asp:Button>
        </FooterTemplate>
    </asp:TemplateField>

    <asp:CommandField ShowEditButton="True" CancelText="Cancel" DeleteText="Delete" EditText="Edit" UpdateText="Update" HeaderText="Modify" 
        ShowDeleteButton="False" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left" 
        ButtonType="Image" CancelImageUrl="Images/Cancel.png" EditImageUrl="Images/Edit.png" UpdateImageUrl="Images/Update.png" ControlStyle-Width="60" ControlStyle-Height="20"/>
 
        <asp:TemplateField HeaderText="Delete" ShowHeader="true" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left" >
                <ItemTemplate>
                        <asp:ImageButton ID="DeleteButton" runat="server" ImageUrl="Images/Delete.png" Width="60" Height="20" VerticalAlign="Center"
                            CommandName="Delete"
                            AlternateText="Delete"  />
                </ItemTemplate>
        </asp:TemplateField>

    </Columns>

                <EditRowStyle BackColor="#ADD8E6" />
                <FooterStyle BackColor="#ADD8E6" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#EFF3FB" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#F5F7FB" />
                <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                <SortedDescendingCellStyle BackColor="#E9EBEF" />
                <SortedDescendingHeaderStyle BackColor="#4870BE" />

</asp:GridView>

【问题讨论】:

    标签: asp.net vb.net


    【解决方案1】:

    为了将标题保持在顶部,我使用了一个脚本来复制标题并将其放入它自己的容器中。但是我仍然遇到页脚可见的问题。我决定在新页面中创建一个创建按钮,而不是处理页脚。用户将数据输入表单而不是 gridview 页脚更清晰。以同样的方式,我使用编辑记录按钮在新页面中打开记录以更新/编辑它。我还让 gridview 页面按 desc 排序,只看到最近的 RMA,删除了重复的标题脚本,并使用了分页。没有理由查看所有记录,只查看最新记录。

                <asp:GridView ID="GridView1" runat="server" 
                AllowPaging="True"
                PageSize="10"
                AllowSorting="True" 
                AutoGenerateColumns="False" 
                DataKeyNames="RMANumber" 
                CellPadding="1" 
                ForeColor="#333333"
                DataSourceID="SqlDataSource1">
                <AlternatingRowStyle BackColor="LightGray" />
                <Columns>               
                    <asp:CommandField ShowDeleteButton="False" ShowEditButton="True" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left" 
                        ButtonType="Image" CancelImageUrl="Images/Cancel.png" 
                        EditImageUrl="Images/Edit.png" UpdateImageUrl="Images/Update.png" 
                        ControlStyle-Width="60" ControlStyle-Height="20">
                    <ControlStyle Height="20px" Width="60px"></ControlStyle>
    
                    <HeaderStyle HorizontalAlign="Left" VerticalAlign="Middle"></HeaderStyle>
                    </asp:CommandField>
                    <asp:Boundfield DataField="RMANumber" HeaderText="RMA Number" ReadOnly="True" SortExpression="RMANumber" > <ItemStyle Width="5%" /> </asp:Boundfield>
                    <asp:BoundField DataField="DconForm" HeaderText="Dcon Form" SortExpression="DconForm" > <ItemStyle Width="3%" /> </asp:BoundField>
                    <asp:BoundField DataField="Customer" HeaderText="Customer" SortExpression="Customer" > <ItemStyle Width="10%" /> </asp:BoundField>
                    <asp:BoundField DataField="ItemBeingReturned" HeaderText="Item(s) Being Returned" SortExpression="ItemBeingReturned" > <ItemStyle Width="10%" /> </asp:BoundField>
                    <asp:BoundField DataField="ReasonForReturn" HeaderText="Reason For Return" SortExpression="ReasonForReturn" > <ItemStyle Width="15%" /> </asp:BoundField> 
                    <asp:BoundField DataField="Dia" HeaderText="Dia" SortExpression="Dia" > <ItemStyle Width="7%" /> </asp:BoundField> 
                    <asp:BoundField DataField="RMADate" HeaderText="RMA Date" SortExpression="RMADate" > <ItemStyle Width="5%" /> </asp:BoundField> 
                    <asp:BoundField DataField="ReturnedDate" HeaderText="Returned Date" SortExpression="ReturnedDate" > <ItemStyle Width="5%" /> </asp:BoundField>
                    <asp:BoundField DataField="DateShipped" HeaderText="Date Shipped" SortExpression="DateShipped" > <ItemStyle Width="5%" /> </asp:BoundField>
                    <asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" > <ItemStyle Width="5%" /> </asp:BoundField>
                    <asp:BoundField DataField="PIKEContact" HeaderText="PIKE Contact" SortExpression="PIKEContact" > <ItemStyle Width="7%" /> </asp:BoundField>
                    <asp:BoundField DataField="DiamondResults" HeaderText="Diamond Results" SortExpression="DiamondResults" > <ItemStyle Width="5%" /> </asp:BoundField>
                    <asp:BoundField DataField="ProblemSolutionFound" HeaderText="Problem / Solution Found" SortExpression="ProblemSolutionFound" > <ItemStyle Width="15%" /> </asp:BoundField>
                    
    
               
                    
                    <asp:TemplateField HeaderText="" ShowHeader="true" HeaderStyle-VerticalAlign="Middle"  HeaderStyle-HorizontalAlign="Left" >
                        <ItemTemplate>
                        <asp:ImageButton ID="DeleteButton" runat="server" ImageUrl="Images/Delete.png" Width="60" Height="20" VerticalAlign="Center"
                            CommandName="Delete"
                            AlternateText="Delete"  />
                        </ItemTemplate>
    
                <HeaderStyle HorizontalAlign="Left" VerticalAlign="Middle"></HeaderStyle>
                    </asp:TemplateField>
                </Columns>
                <EditRowStyle BackColor="#ADD8E6" />
                <FooterStyle BackColor="#ADD8E6" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#EFF3FB" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#F5F7FB" />
                <SortedAscendingHeaderStyle BackColor="#6D95E1" />
                <SortedDescendingCellStyle BackColor="#E9EBEF" />
                <SortedDescendingHeaderStyle BackColor="#4870BE" />
    
            </asp:GridView>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:PIKE_Intranet_DBConnectionString %>" 
                DeleteCommand="DELETE FROM [RMATable] WHERE [RMANumber] = @RMANumber" 
                InsertCommand="INSERT INTO [RMATable] ([RMANumber], [DconForm], [Customer], [ItemBeingReturned], [ReasonForReturn], [Dia], [RMADate], [ReturnedDate], [DateShipped], [Status], [PIKEContact], [DiamondResults], [ProblemSolutionFound]) VALUES (@RMANumber, @DconForm, @Customer, @ItemBeingReturned, @ReasonForReturn, @Dia, @RMADate, @ReturnedDate, @DateShipped, @Status, @PIKEContact, @DiamondResults, @ProblemSolutionFound)" 
                SelectCommand="SELECT * FROM [RMATable] ORDER BY [RMANumber] DESC" 
                UpdateCommand="UPDATE [RMATable] SET [DconForm] = @DconForm, [Customer] = @Customer, [ItemBeingReturned] = @ItemBeingReturned, [ReasonForReturn] = @ReasonForReturn, [Dia] = @Dia, [RMADate] = @RMADate, [ReturnedDate] = @ReturnedDate, [DateShipped] = @DateShipped, [Status] = @Status, [PIKEContact] = @PIKEContact, [DiamondResults] = @DiamondResults, [ProblemSolutionFound] = @ProblemSolutionFound WHERE [RMANumber] = @RMANumber">
                <DeleteParameters>
                    <asp:Parameter Name="RMANumber" Type="String" />
                </DeleteParameters>
                <InsertParameters>
                    <asp:Parameter Name="RMANumber" Type="String" />
                    <asp:Parameter Name="DconForm" Type="String" />
                    <asp:Parameter Name="Customer" Type="String" />
                    <asp:Parameter Name="ItemBeingReturned" Type="String" />
                    <asp:Parameter Name="ReasonForReturn" Type="String" />
                    <asp:Parameter Name="Dia" Type="String" />
                    <asp:Parameter Name="RMADate" Type="String" />
                    <asp:Parameter Name="ReturnedDate" Type="String" />
                    <asp:Parameter Name="DateShipped" Type="String" />
                    <asp:Parameter Name="Status" Type="String" />
                    <asp:Parameter Name="PIKEContact" Type="String" />
                    <asp:Parameter Name="DiamondResults" Type="String" />
                    <asp:Parameter Name="ProblemSolutionFound" Type="String" />
                </InsertParameters>
                <UpdateParameters>
                    <asp:Parameter Name="DconForm" Type="String" />
                    <asp:Parameter Name="Customer" Type="String" />
                    <asp:Parameter Name="ItemBeingReturned" Type="String" />
                    <asp:Parameter Name="ReasonForReturn" Type="String" />
                    <asp:Parameter Name="Dia" Type="String" />
                    <asp:Parameter Name="RMADate" Type="String" />
                    <asp:Parameter Name="ReturnedDate" Type="String" />
                    <asp:Parameter Name="DateShipped" Type="String" />
                    <asp:Parameter Name="Status" Type="String" />
                    <asp:Parameter Name="PIKEContact" Type="String" />
                    <asp:Parameter Name="DiamondResults" Type="String" />
                    <asp:Parameter Name="ProblemSolutionFound" Type="String" />
                    <asp:Parameter Name="RMANumber" Type="String" />
                </UpdateParameters>
            </asp:SqlDataSource>
            <br />
        </div>
    </form>
    

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多