程式碼區(配合GridView控制項文章一起看)
分頁功能程式碼區(cs):
protected void Page_Load(object sender, EventArgs e)
{
}
//protected void lkbNext_Click(object sender, EventArgs e)
//{
// GridView1.PageIndex++;
//}
//protected void lkbPrev_Click(object sender, EventArgs e)
//{
// if (GridView1.PageIndex > 0) //避免超出引數範圍
// {
// GridView1.PageIndex--;
// }
//}
protected void PageChange_Click(object sender, EventArgs e)
{
if (((LinkButton)sender).ID == "lkbPrev") //把sender轉換成LinkButton來指定屬性,重要寫法要理解!!
{
if (GridView1.PageIndex > 0) //避免超出引數範圍 不能用>=0 是因為等於0時會成立條件 造成-1
//上一頁
GridView1.PageIndex--;
}
else
{ //下一頁
GridView1.PageIndex++;
}
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
TableCell tc = GridView1.BottomPagerRow.Cells[0]; //宣告一個表格元素變數,將GridView1的頁碼最一個row元素賦值給他
string page = "page " + (GridView1.PageIndex + 1) + " of " + GridView1.PageCount;
Label lblInfo = (Label)tc.FindControl("lblInfo");
lblInfo.Text = page;
// find單字 找
// ((Label)GridView1.BottomPagerRow.Cells[0].FindControl("lblInfo")).Text = page; //完整寫法
ListItem item;
DropDownList ddlPager = (DropDownList)tc.FindControl("ddlPager");
for (int i = 1; i <= GridView1.PageCount; i++)
{
item = new ListItem(i.ToString());
// item.Text = i.ToString();
ddlPager.Items.Add(item);
if (GridView1.PageIndex == i-1)//GridView1.PageIndex屬性為目前顯示頁面之以零起始的索引,所以必須-1。
item.Selected = true;
//((DropDownList)GridView1.BottomPagerRow.Cells[0].FindControl("ddlPager")).Items.Add(item);
}
}
protected void ddlPager_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlPager = (DropDownList)GridView1.BottomPagerRow.Cells[0].FindControl("ddlPager");
GridView1.PageIndex = ddlPager.SelectedIndex;//將選取之後的值賦值給GridView頁碼進行跳轉頁面
}
aspx:
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" PageSize="3" AllowPaging="true" OnDataBound="GridView1_DataBound">
<PagerTemplate>
<table style="width:100%">
<tr>
<td>
<asp:LinkButton ID="lkbPrev" runat="server" CssClass="btn" OnClick="PageChange_Click">3</asp:LinkButton>
<asp:LinkButton ID="lkbNext" runat="server" CssClass="btn" OnClick="PageChange_Click">4</asp:LinkButton>
<asp:DropDownList ID="ddlPager" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPager_SelectedIndexChanged" >
</asp:DropDownList>
</td>
<td style="text-align:right">
<asp:Label ID="lblInfo" runat="server"></asp:Label>
</td>
</tr>
</table>
</PagerTemplate>
</asp:GridView>