2009-02-19 59 views
2

我有一個gridview可能最終顯示大約5K記錄。我目前設置爲使用分頁,因此一次顯示200條記錄。爲了增加可用性,我希望向最終用戶提供一些反饋,以便他們更容易地找到記錄。我希望有一種方式,用戶可以將鼠標放在其中一個尋呼機鏈接上,工具提示可以顯示頁面上可用的記錄範圍。在asp.net中添加工具提示到分頁鏈接GridView

例如:

用戶將鼠標懸停在頁#1鏈路和工具提示讀取艾博特 - BUELLER 用戶將鼠標懸停在頁#14鏈路和工具提示讀取MARTIN - PELLIGRINO

我該如何在ASP.NET中完成此操作?

回答

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

現在剩下的工作是確定工具提示文本應該是什麼。爲此,您需要每頁的頂部和底部行的索引。在這個例子中它們是:

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