asp.net - 冻结 Gridview 标题
问题描述
我希望标题冻结在顶部,因为我有超过 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>
解决方案
为了将标题保持在顶部,我使用了一个脚本来复制标题并将其放入它自己的容器中。但是我仍然遇到页脚可见的问题。我决定在新页面中创建一个创建按钮,而不是处理页脚。用户将数据输入表单而不是 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>
推荐阅读
- python - Kuberenetes 在 CentOS 7 上导入问题 Python 3.6.8
- java - 无法在项目后端执行目标 com.google.cloud.tools:appengine-maven-plugin:2.3.0:run (default-cli)
- reactjs - 底部有一个细细的白色边框,我只能用边框删除:0 !重要
- python - python中的yaml变量
- nestjs - 如何在带有嵌套会话的守卫中使用会话对象
- javascript - 使用 setTimeout 重新加载 Ajax 函数不会首先清除先前的超时
- python - 如何使用 struct.unpack 从 python 3 中的字节列表中提取 int?
- python - Celery 不适用于 Heroku 上的 Django。获取`Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection denied`错误
- selenium - 在 Python 中使用 webdriver 抓取时,通过“单击”“显示更多”来扩展显示的表格
- c# - 如何为字节添加前缀(1)?