Это невозможно с asp:GridView
, но вы можете легко добиться этого, используя asp:ListView
.
. Для этого вам нужно использовать GroupItemTemplate
и GroupItemCount
из asp:ListView
Пример кода с использованием asp:ListView
с asp:DataPager
<asp:DataPager ID="TopPager" runat="server"
PageSize="10"
PagedControlID="ImagesList">
<Fields>
<asp:NextPreviousPagerField PreviousPageText="Previous"
RenderDisabledButtonsAsLabels="true"
RenderNonBreakingSpacesBetweenControls="true"
ShowFirstPageButton="false"
ShowNextPageButton="false"
ShowLastPageButton="false"
ShowPreviousPageButton="true" />
<asp:NumericPagerField ButtonCount="10"
CurrentPageLabelCssClass="current"
RenderNonBreakingSpacesBetweenControls="true"/>
<asp:NextPreviousPagerField NextPageText="Next"
RenderDisabledButtonsAsLabels="true"
ShowFirstPageButton="false"
ShowPreviousPageButton="false"
ShowNextPageButton="true"
ShowLastPageButton="false" />
</Fields>
</asp:DataPager>
<asp:ListView ID="ImagesList" runat="server"
DataKeyNames="MyImageID"
GroupItemCount="4"
OnPagePropertiesChanging="ImagesList_PagePropertiesChanging">
<EmptyDataTemplate>
No Images found.
</EmptyDataTemplate>
<LayoutTemplate>
<table>
<tr runat="server" id="groupPlaceholder" />
</table>
</LayoutTemplate>
<GroupTemplate>
<tr>
<td runat="server" id="itemPlaceholder" />
</tr>
</GroupTemplate>
<ItemTemplate>
<td>
<asp:Image ID="MyPicture" runat="server"
AlternateText='<%# Eval("MyAltText") %>'
ImageUrl='<%# Eval("MyImageUrl") %>' />
</td>
</ItemTemplate>
</asp:ListView>
<asp:DataPager ID="BottomPager" runat="server"
PageSize="10"
PagedControlID="ImagesList">
<Fields>
<asp:NextPreviousPagerField PreviousPageText="Previous"
RenderDisabledButtonsAsLabels="true"
RenderNonBreakingSpacesBetweenControls="true"
ShowFirstPageButton="false"
ShowNextPageButton="false"
ShowLastPageButton="false"
ShowPreviousPageButton="true"/>
<asp:NumericPagerField ButtonCount="10"
CurrentPageLabelCssClass="current"
RenderNonBreakingSpacesBetweenControls="true"/>
<asp:NextPreviousPagerField NextPageText="Next"
RenderDisabledButtonsAsLabels="true"
ShowFirstPageButton="false"
ShowPreviousPageButton="false"
ShowNextPageButton="true"
ShowLastPageButton="false" />
</Fields>
</asp:DataPager>
И для реализации подкачки, сделайте это с выделенным кодом
protected void ImagesList_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
try
{
TopPager.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
BottomPager.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
}
catch (Exception exception)
{
//Elmah.ErrorSignal.FromCurrentContext().Raise(exception);
}
}