GridView 自訂分頁
http://dotnetmis91.blogspot.com/2008/08/gridview_20.html
本文為參考坎尼大大的文章 做成的快速製作版 如果趕時間可以馬上完成的步驟紀錄
1. 自訂Pager Templete, 將相關物件拉進Pager 或直接貼程式碼: 注意程式碼的部分已經將Click的程序名稱掛上去 若 是自己用啦的請注意程序名稱,文字部分可自行換成圖片 直接加在</Columns> 或 <AlternatingRowStyle> 下,在</asp:GridView>內。
<PagerTemplate>
<asp:Label ID="Label1" runat="server" ></asp:Label>
<asp:LinkButton ID="lbtnfirst" runat="server" CommandArgument="first"
OnClick="Query_Click" >First</asp:LinkButton>
<asp:LinkButton ID="lbtnPrevious" runat="server"
CommandArgument="previous" OnClick="Query_Click"
>Previous</asp:LinkButton>
<asp:LinkButton ID="lbtnnext" runat="server" CommandArgument="next"
OnClick="Query_Click" >Next</asp:LinkButton>
<asp:LinkButton ID="lbtnlast" runat="server" CommandArgument="last"
OnClick="Query_Click">Last</asp:LinkButton>
<asp:DropDownList ID="DropDownList1" runat="server"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"
AutoPostBack="True">
</asp:DropDownList>
<asp:Label ID="Label2" runat="server" ></asp:Label>
2. 貼入相關C#程序,若需要相關說明請參考坎尼大大的文章:
protected void Query_Click(object sender, EventArgs e) {
int intPageIndex = 0;
LinkButton lkbtn = (LinkButton)sender;
switch (lkbtn.CommandArgument.ToString()) {
case "previous":
if (GridView1.PageIndex > 0) {
intPageIndex = GridView1.PageIndex - 1;
} break;
case "next":
if (GridView1.PageIndex < GridView1.PageCount - 1) {
intPageIndex = GridView1.PageIndex + 1;
} break;
case "last":
intPageIndex = GridView1.PageCount - 1;
break;
}
GridView1.PageIndex = intPageIndex;
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlPage = ((DropDownList)GridView1.BottomPagerRow.FindControl("DropDownList1"));
GridView1.PageIndex = ddlPage.SelectedIndex;
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
pageSet(GridView1);
}
public void pageSet(object gvQuery) {
GridView gv = (GridView)gvQuery;
Label lbCount = (Label)gv.BottomPagerRow.FindControl("Label1");
Label lbPage = (Label)gv.BottomPagerRow.FindControl("Label2");
DropDownList ddlJump = (DropDownList)gv.BottomPagerRow.FindControl("DropDownList1");
lbCount.Text = "共 " + (gv.PageSize * gv.PageCount).ToString() + " 筆"; // 要精準的部份需另外判斷!
lbPage.Text = "共 " + gv.PageCount + " 頁";
for (int i = 1; i <= gv.PageCount; i++) {
ddlJump.Items.Add(new ListItem(i.ToString()));
if (gv.PageIndex == 0) {
((LinkButton)gv.BottomPagerRow.FindControl("lbtnfirst")).Enabled = false;
((LinkButton)gv.BottomPagerRow.FindControl("lbtnPrevious")).Enabled = false;
}
else if (gv.PageIndex == (gv.PageCount - 1)) {
((LinkButton)gv.BottomPagerRow.FindControl("lbtnnext")).Enabled = false;
((LinkButton)gv.BottomPagerRow.FindControl("lbtnlast")).Enabled = false;
}
ddlJump.SelectedIndex = gv.PageIndex;
}
}
3. 設定GridView 相關屬性或直接加上程式碼部分加上觸發事件部份
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="id" DataSourceID="SqlDataSource1" ForeColor="#333333"
OnDataBound="GridView1_DataBound">
- Aug 23 Mon 2010 18:00
[.NET] GridView 自訂分頁 SOP 快速步驟
全站熱搜
留言列表
發表留言