我使用 pagertemplate 和转发器,我有一个包含很多页面的 Gridview
。如何在我的寻呼机模板和中继器中使用省略号?
这就是我真正拥有的
<< < 1 2 3 4 5 6 7 8 9 10 > >>
这就是我想要的
<< < 1 2 3 ... > >>
当我更改页面时,例如我在第 5 页,它会显示类似这样的内容
<< < ... 4 5 6 ... > >>
这是我的.aspx文件
<PagerTemplate>
<asp:LinkButton runat="server" ID="LB_FIRST" Text="<<" CommandName="Page" CommandArgument="First"></asp:LinkButton>
<asp:LinkButton runat="server" ID="LB_PREV" Text="<" CommandName="Page" CommandArgument="Prev"></asp:LinkButton>
<asp:Repeater runat="server" ID="RE_NP" OnLoad="RE_NP_Load" OnItemCommand="RE_NP_ItemCommand" OnItemDataBound="RE_NP_ItemDataBound">
<ItemTemplate>
<asp:LinkButton runat="server" ID="LB_NP" Text='<%# cont.dar %>' CommandName="ChangePage" CommandArgument='<%# cont.dar %>'></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
<asp:LinkButton runat="server" ID="LB_NEXT" Text=">" CommandName="Page" CommandArgument="Next"></asp:LinkButton>
<asp:LinkButton runat="server" ID="LB_LAST" Text=">>" CommandName="Page" CommandArgument="Last"></asp:LinkButton>
</PagerTemplate>
<PagerStyle HorizontalAlign="Right"/>
<PagerSettings Mode="NumericFirstLast" Position="Bottom" PageButtonCount="5" />
这是我的.aspx.cs文件
protected void RE_NP_Load(object sender, EventArgs e)
{
Repeater rpt = (Repeater)sender;
rpt.DataSource = Enumerable.Range(1, GV_GN.PageCount);
rpt.DataBind();
}
protected void RE_NP_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "ChangePage")
{
GV_GN.PageIndex = Convert.ToInt32(e.CommandArgument) - 1;
}
}
protected void RE_NP_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
LinkButton lb = new LinkButton();
if (e.Item.ItemIndex == GV_GN.PageIndex)
{
lb = (LinkButton)e.Item.FindControl("LB_NP");
lb.ForeColor = Color.Black;
lb.Enabled = false;
}
else
{
lb.Enabled = true;
}
}