如何在 PagerTemplate 中添加省略号?

时间:2021-01-19 17:23:28

标签: c# asp.net repeater pagertemplate

我使用 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;
    }
}

0 个答案:

没有答案