[英]paging in asp.net gridview using repeater control
我正在使用asp.net gridview,对于分页,我正在使用中继器控件。
但是我的分页看起来像这样
我想要的是它应该看起来像这样
下面是我填充寻呼机的代码
private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / decimal.Parse((1).ToString()));
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
{
pages.Add(new ListItem("First", "1", currentPage > 1));
for (int i = 1; i <= pageCount; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount));
}
// aa.Controls.Add(
System.Web.UI.HtmlControls.HtmlGenericControl g = new System.Web.UI.HtmlControls.HtmlGenericControl();
rptPager.DataSource = pages;
rptPager.DataBind();
}
任何帮助将不胜感激
我的中继器控件标记如下
<ul class="pagination">
<li>
<asp:LinkButton CssClass="pagination" ID="lnkPage" runat="server" Text = '<%#Eval("Text") %>' CommandArgument = '<%# Eval("Value") %>' Enabled = '<%# Eval("Enabled") %>' OnClick = "Page_Changed"></asp:LinkButton>
</li> </ul>
</ItemTemplate>
</asp:Repeater>
<ul id="aa" runat="server" class="pagination">
您可以更改页面总数,以在列出的页面编号之前和/或之后添加“ ...”,然后才有逻辑地这样做,如果您看不到想要的页面范围的第一页或最后一页节目。 如果currentPage和pageCount正确,则下面的代码应针对所需显示的页面范围生成适当的页面列表项,在这种情况下为4。
int pagesToShow = 4;
int minPage = Math.Max(1, currentPage - (pagesToShow / 2));
int maxPage = Math.Min(pageCount, minPage + pagesToShow);
if (minPage > 1)
pages.Add(new ListItem("...", (minPage - 1).ToString(), false));
for (int i = minPage; i <= maxPage; i++)
{
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
}
if (maxPage < pageCount)
pages.Add(new ListItem("...", (maxPage + 1).ToString(), false));
编辑所以您的最终方法变为:
private void PopulatePager(int recordCount, int currentPage)
{
double dblPageCount = (double)((decimal)recordCount / decimal.Parse((1).ToString()));
int pageCount = (int)Math.Ceiling(dblPageCount);
List<ListItem> pages = new List<ListItem>();
if (pageCount > 0)
{
pages.Add(new ListItem("First", "1", currentPage > 1));
int pagesToShow = 4;
int minPage = Math.Max(1, currentPage - (pagesToShow / 2));
int maxPage = Math.Min(pageCount, minPage + pagesToShow);
if (minPage > 1)
pages.Add(new ListItem("...", (minPage - 1).ToString(), false));
for (int i = minPage; i <= maxPage; i++)
pages.Add(new ListItem(i.ToString(), i.ToString(), i != currentPage));
if (maxPage < pageCount)
pages.Add(new ListItem("...", (maxPage + 1).ToString(), false));
pages.Add(new ListItem("Last", pageCount.ToString(), currentPage < pageCount));
}
System.Web.UI.HtmlControls.HtmlGenericControl g = new System.Web.UI.HtmlControls.HtmlGenericControl();
rptPager.DataSource = pages;
rptPager.DataBind();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.