「55 個中 10 個のアイテムを表示しています (3 ページ目)」のような情報をグリッドビューのページャーに挿入し、その情報を実際の PageCount および PageSize プロパティにバインドすることはできますか?
GridViewの外であっても、ページャーの外でそれを行うことしか考えられません。
PagerTempate プロパティを使用できます。
<asp:GridView Id="MyGridView" runat="server" AllowPaging="true">
<PagerTemplate>
<asp:LinkButton CommandName="Page" CommandArgument="First" ID="lbFirst" runat="server">First</asp:LinkButton>
<asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="lbPrev" runat="server"><</asp:LinkButton>
[Items <%= MyGridView.PageIndex * MyGridView.PageSize %> - <%= MyGridView.PageIndex * MyGridView.PageSize + MyGridView.PageSize - 1 %>]
<asp:LinkButton CommandName="Page" CommandArgument="Next" ID="lbNext" runat="server">></asp:LinkButton>
<asp:LinkButton CommandName="Page" CommandArgument="Last" ID="lbLast" runat="server">>></asp:LinkButton>
</PagerTemplate>
...
標準の Griview を継承した独自の Griview を作成することもできます。InitializePager
次に、 -methodをオーバーライドできます。
protected override void InitializePager(GridViewRow row, int columnSpan, PagedDataSource pagedDataSource)
{
TableCell pagerCell = new TableCell();
pagerCell.ColumnSpan = columnSpan;
LinkButton linkFirst = new LinkButton();
linkFirst.ToolTip = "Go to first page";
linkFirst.CommandName = "Page";
linkFirst.CommandArgument = "First";
pagerCell.Controls.Add(linkFirst);
row.Cells.Add(pagerCell);
}
ここにコードの一部を貼り付けただけなので、このコード スニペットが機能するかどうかはわかりませんが、InitializePager
-method をオーバーライドする方法については良い指標になるはずです! :-)