GridView自定义PagerTemplate,显示隐藏上一个和下一个链接

时间:2012-01-12 07:26:21

标签: asp.net gridview

我有以下的PagerTemplate。我需要在用户查看第一页时隐藏Previous链接,如果用户正在查看Last页面,则隐藏Next链接。

                <PagerTemplate>
                    <table border="0" style="width: 100%;">
                        <tbody>
                            <tr>
                                <td style="float: right;">
                                    <asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="LinkButton2" runat="server"><< Previous</asp:LinkButton>
                                    &nbsp;<asp:LinkButton CommandName="Page" CommandArgument="Next" ID="LinkButton3" runat="server" >Next >></asp:LinkButton>
                                </td>
                                <td style="clear: both"></td>
                            </tr>
                        </tbody>
                    </table>
                </PagerTemplate>

1 个答案:

答案 0 :(得分:3)

网格的PageIndexPageCount属性可以为您提供帮助 - 仅在PageIndex > 0时显示/启用上一个链接,而PageIndex < PageCount - 1时仅显示/启用下一个链接

使用行创建的事件来查找控件并更改可见性。例如,

protected void GridView_RowCreated(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.Pager)
    {
       var prev = (LinkButton)e.Row.FindControl("LinkButton2");
       prev.Visible = Grid.PageIndex > 0;

       var next = (LinkButton)e.Row.FindControl("LinkButton3");
       next.Visible = Grid.PageIndex < grid.PageCount -  1;
    }
}

我不确定您是否需要当前UI的自定义模板。您可以使用寻呼机设置 - 例如,

<pagersettings mode="NextPrevious"
            nextpagetext="Next >>"
            previouspagetext="<< Previos"   
            position="Bottom"/> 

使用PagerStyle为UI设计样式。

<PagerStyle CssClass="myPager" />