将工具提示添加到asp.net GridView中的分页链接

时间:2009-02-19 16:03:33

标签: asp.net gridview

我有一个gridview,可能最终显示大约5K记录。我目前设置使用分页,因此它一次显示200条记录。为了增加可用性,我希望为最终用户提供一些反馈,以便他们更容易地找到记录。我希望有一种方法可以让用户将鼠标放在其中一个寻呼机链接上,工具提示会显示页面上可用的记录范围。

例如:

用户将鼠标放在Page#1链接上,工具提示显示 ABOTT - BUELLER 用户将鼠标放在Page#14链接上,工具提示显示 MARTIN - PELLIGRINO

我将如何在ASP.NET中完成此任务?

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作。首先创建一个空的PagerTemplate:

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

现在,为了响应DataBound事件,您可以向寻呼机行添加控件。此代码只是将页码添加为LinkBut​​tons。

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();
}

现在剩下的就是弄清楚ToolTip文本应该是什么。为此,您需要每页的顶行和底行的索引。在这个例子中,他们将是:

int topIndex = i * GridView1.PageSize;
int bottomIndex = ((i + 1) * GridView1.PageSize) - 1;