GridView用PagedDataSource實現分頁

.aspx代碼:

<script type="text/javascript">
      
function isUnsignedInteger() {
   var strInteger=document.getElementById("txtPage").value;
   var newPar=/^/d+$/
    if(!newPar.test(strInteger))
    {
      alert("請輸入正確的頁數"); 
      return false;
    }
    else
    return true;
}
   </script>

 

 <asp:GridView ID="gvProject" runat="server" AutoGenerateColumns="False" AllowSorting="True" >

...............

</asp:GridView>

<table id="pagenum" visible="false" runat="server" width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
                                  <td align="center" style="height: 22px">
                                      <asp:Label ID="lblCurrentPage" runat="server" Text=""></asp:Label>
                                      <asp:HyperLink ID="lnkIndex" runat="server" Font-Overline="false">首頁</asp:HyperLink>
                                      <asp:HyperLink ID="lnkPrev" runat="server" Font-Overline="false">上一頁</asp:HyperLink>
                                      <asp:HyperLink ID="lnkNext" runat="server" Font-Overline="false">下一頁</asp:HyperLink>
                                      <asp:HyperLink ID="lnkLast" runat="server" Font-Overline="false">尾頁</asp:HyperLink>
                                      <input id="txtPage" runat="server" style="width: 25px; height: 15px"/>
                                   
                                      <asp:Button ID="btnGo" runat="server" Text="GO" Width="28px" Height="20px" OnClick="btnGo_Click"  OnClientClick="return isUnsignedInteger()"/>
                                  </td>
           </tr>
</table>

.aspx.cs代碼:

 IList<Project_Master> pm = Project_MasterManager.GetAllProject_Masters();

 PagedDataSource pds = new PagedDataSource();
            int CurPage = 0;
            pds.DataSource = pm;
            pds.PageSize = 10;
            pds.AllowPaging = true;
            if (pm.Count > 10)
                this.pagenum.Visible = true;//翻頁顯示
           
            if (Request.QueryString["Page"] != null)
            {
                CurPage = Convert.ToInt32(Request.QueryString["Page"]);
                if (Convert.ToInt32(Request.QueryString["Page"]) > pds.PageCount)
                {
                    CurPage = pds.PageCount;
                }
                else if (Convert.ToInt32(Request.QueryString["Page"]) == 0)
                {
                    CurPage = 1;
                }
            }
            else
           
                CurPage = 1;
                pds.CurrentPageIndex = CurPage - 1;
                lblCurrentPage.Text = CurPage.ToString() + "/" + pds.PageCount + "頁";

                if (!pds.IsFirstPage)
                {
                    lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?FileId=" + pm[0].Id+ "&Page=" + Convert.ToString(CurPage - 1);
                    lnkIndex.NavigateUrl = Request.CurrentExecutionFilePath + "?FileId=" + pm[0].Id+ "&Page=1";
                }
                if (!pds.IsLastPage)
                {
                    lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?FileId=" + pm[0].Id+ "&Page=" + Convert.ToString(CurPage + 1);
                    lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?FileId=" + pm[0].Id+ "&Page=" + pds.PageCount.ToString();
                }

                this.gvProject.DataSource = pds;
                this.gvProject.DataBind();
           
        }

//go 跳到第幾頁

    protected void btnGo_Click(object sender, EventArgs e)
    {
        string numpage = this.txtPage.Value.ToString();
        Response.Redirect("ProjectMaster.aspx?page=" + numpage);

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章