我正在尝试构建一个符合 WCAG 2.0 的带有分页的 GridView。GridView 将呈现一个额外的行,其中包含一个单元格,该单元格的列跨度为表的总列数,其中包含一个子表。我认为这不符合 WCAG 2.0,因为在我看来,分页不是表中数据的一部分。因此,它不应该在 GridView 中排成一行。
现在有没有人可以利用 GridView 的功能并且仍然在表格元素之外使用 Pager?
到目前为止,我发现我可以像这样指定 PagerTempalte(为了显示标记,寻呼机不起作用):
<form id="form1" runat="server">
<h1>Gridview with pager</h1>
<asp:GridView ID="CustomerView" DataSourceID="CustomersData" AutoGenerateColumns="true"
AllowPaging="true" runat="server">
<PagerSettings Position="Bottom" />
<PagerStyle ForeColor="Blue" BackColor="LightBlue" />
<PagerTemplate>
<asp:Label ID="MessageLabel" Text="Select a page:" runat="server" />
<asp:DropDownList ID="PageDropDownList" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
</PagerTemplate>
</asp:GridView>
<asp:SqlDataSource ID="CustomersData" SelectCommand="Select [CustomerID], [CompanyName], [Country] From [Customers]"
ConnectionString="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server" />
</form>
但是,此 PageTemplate 仅影响寻呼机本身的标记。它仍将在 colspan="number of columns" 的 tr 的 td 内呈现。