前台長這樣,用Panel裝4個linkbutton,因為設定超過12筆才需要分頁,所以一開始是隱藏的
<asp:Panel ID="PanelPager" runat="server" Visible="false">
<center>
<table>
<tr>
<td><asp:LinkButton ID="lblFirstPage" runat="server" OnCommand="IndexChanging" CommandArgument="first">第一頁</asp:LinkButton>
</td>
<td><asp:linkbutton ID="lblPrePage" OnCommand="IndexChanging" CommandArgument="pre" runat="server" >上一頁</asp:linkbutton>
</td>
<td><asp:Label ID="lblCurrentPage" runat="server"></asp:Label> / <asp:Label ID="lblTotalPage" runat="server"></asp:Label>
</td>
<td><asp:linkbutton ID="lblNextPage" OnCommand="IndexChanging" CommandArgument="next" runat="server" >下一頁</asp:linkbutton>
</td>
<td><asp:linkbutton ID="lblLastPage" OnCommand="IndexChanging" CommandArgument="last" runat="server" >最後一頁</asp:linkbutton></td>
</tr>
</table>
</center>
</asp:Panel>
後台大概這樣,總的來說就是做一個PagedDataSouce再把資料連結出來的DataTable聯繫給PagedDataSouce,最後利用四個LinkButton來表現分頁效果。public static PagedDataSource pg = new PagedDataSource();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["pageindex"] = "0";
ShowData();
}
}
protected void ShowData()
{
Panel_Show.Visible = true;
Entity.Papers ePapers = new Entity.Papers();
ePapers.Pt_id = "bill";
DataTable DT = DataRepository.PapersProvider.SearchCount(ePapers);
//當資料超過12筆才需要分頁
if (DT != null && DT.Rows.Count > 12)
{
PanelPager.Visible = true;
DataView dv = DT.DefaultView;
pg.DataSource = dv;
pg.AllowPaging = true;
pg.PageSize = 12;
pg.CurrentPageIndex = int.Parse(ViewState["pageindex"].ToString());
//第一頁、最後一頁的設定
if (!pg.IsFirstPage)
{
lblPrePage.Enabled = true;
lblFirstPage.Enabled = true;
}
else
{
lblPrePage.Enabled = false;
lblFirstPage.Enabled = false;
}
if (!pg.IsLastPage)
{
lblNextPage.Enabled = true;
lblLastPage.Enabled = true;
}
else
{
lblNextPage.Enabled = false;
lblLastPage.Enabled = false;
}
int pageindex = Convert.ToInt16(ViewState["pageindex"]);
pageindex = pageindex + 1;
lblCurrentPage.Text = (pageindex).ToString();
lblTotalPage.Text = (pg.PageCount).ToString();
dltPapersShow.DataSource = pg;
dltPapersShow.DataBind();
}
else
{
dltPapersShow.DataSource = DT;
dltPapersShow.DataBind();
}
}
//資料連結
public static object GetData(Entity.Papers aPapers)
{
string SQLStr = "SELECT name FROM papers_type WHERE pt_id=@pt_id";
object Data = SQLDataAccess.ExecuteScalar(SQLDataAccess.DefaultConnectionString, CommandType.Text, SQLStr, new SqlParameter("@pt_id", aPapers.Pt_id));
return Data;
}
做完大概像這樣
沒有留言:
張貼留言