Добавить всплывающую подсказку к странице подкачки в asp.net GridView - PullRequest
2 голосов
/ 19 февраля 2009

У меня есть сетка, которая может отображать около 5K записей. В настоящее время он настроен на использование подкачки, поэтому он отображает 200 записей одновременно. Чтобы повысить удобство использования, я хотел бы предоставить конечному пользователю некоторую обратную связь, которая позволит ему легче находить записи. Я надеялся, что пользователь сможет навести указатель мыши на одну из ссылок на пейджер, и во всплывающей подсказке отобразится диапазон записей, доступных на странице.

Например:

Пользователь наводит указатель мыши на ссылку # 1 страницы, и всплывающая подсказка показывает ABOTT - BUELLER Пользователь наводит указатель мыши на ссылку # 14, и всплывающая подсказка показывает MARTIN - PELLIGRINO

Как бы я сделал это в ASP.NET?

1 Ответ

2 голосов
/ 19 февраля 2009

Вы можете сделать следующее. Сначала создайте пустой шаблон PagerTemplate:

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

Теперь в ответ на событие DataBound вы можете добавить элементы управления в строку пейджера. Этот код просто добавляет номера страниц в виде кнопок LinkButtons.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...