代码之家  ›  专栏  ›  技术社区  ›  Aheho

在ASP.NET网格视图中将工具提示添加到分页链接

  •  2
  • Aheho  · 技术社区  · 16 年前

    我有一个网格视图,可以显示大约5公里的记录。我目前已经设置了使用分页,所以它一次显示200条记录。为了增加可用性,我想向最终用户提供一些反馈,让他们更容易找到记录。我希望有一种方法,用户可以将鼠标放在一个寻呼机链接上,工具提示将显示页面上可用的记录范围。

    例如:

    用户将鼠标放在页面链接上,工具提示显示 阿博特-布勒 用户将鼠标放在页面链接上,工具提示显示 马丁-佩利格里诺

    我如何在ASP.NET中实现这一点?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Iain M Norman    16 年前

    您可以执行以下操作。首先创建空页面模板:

    <asp:GridView 
    ID="GridView1" 
    runat="server" 
    AllowPaging="true" 
    PagerSettings-Mode="Numeric" 
    PageSize="2" ondatabound="GridView1_DataBound">
        <PagerTemplate />
    </asp:GridView>
    

    现在,为了响应数据绑定事件,可以向页导航行添加控件。此代码只是将页码添加为链接按钮。

    protected void GridView1_DataBound(object sender, EventArgs e)
    {
        GridViewRow pagerRow = GridView1.BottomPagerRow;
    
        for (int i = 0; i < GridView1.PageCount; i++)
        {
            LinkButton lb = new LinkButton();
            lb.Text = i.ToString();
            lb.ToolTip = "...";
            lb.CommandName = "Page";
            lb.CommandArgument = i.ToString();
    
            pagerRow.Cells[0].Controls.Add(lb);
        }
    
    }
    

    您还需要处理pageIndexChanging事件。

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex + 1;
        GridView1.DataBind();
    }
    

    现在剩下的就是计算出工具提示文本应该是什么。为此,您需要为每一页提供顶部和底部行的索引。在这个例子中,它们是:

    int topIndex = i * GridView1.PageSize;
    int bottomIndex = ((i + 1) * GridView1.PageSize) - 1;
    
    推荐文章