Вставьте пользовательскую информацию в Pager GridView Pager?
Вопрос
Можно ли вставить информацию в пейджер GRIDView, например, «Показаны 10 из 55 элементов (вы находитесь на стр. 3)» и связываете эту информацию соответствующим образом к фактическим свойствам PageCount и PageSite?
Я могу думать только о том, чтобы сделать это за пределами пейджера, даже за пределами 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
-Метод:
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
-Моз! :-)