302班

          java突擊隊
          posts - 151, comments - 74, trackbacks - 0, articles - 14
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
           

          1.頁面后臺代碼
          private void Page_Load(object sender, System.EventArgs e)
          {
           if(!Page.IsPostBack)
           {
            ItemCount=GetItemCount();   //獲取總記錄數(shù)
            PageSize=5;     //設(shè)置每頁顯示多少條記錄
            NumSize=6;     //設(shè)置分頁按鈕顯示數(shù)量
            if(ItemCount==0)   //計算總頁數(shù)
             PageCount=1;
            else
             PageCount=ItemCount%PageSize==0?ItemCount/PageSize:ItemCount/PageSize+1;
            PageURL=Request.Path;  //獲取當(dāng)前頁面的URL
            string URLParameters="?Page=";  //額外的URL參數(shù)設(shè)置
            PageURL+=URLParameters;
            Bind_PagerList();
           }
           string RequestPage=Request.QueryString["Page"];
           if(RequestPage==null || RequestPage==string.Empty || int.Parse(RequestPage)<=0) //計算PageIndex
            PageIndex=1;
           else if(int.Parse(RequestPage)>PageCount)
            PageIndex=PageCount;
           else
            PageIndex=int.Parse(RequestPage);
           this.dlPager.SelectedIndex=PageIndex-1;  //下拉列表選定項
           Bind_Pager();        //綁定分頁P(yáng)anel所有按鈕
           Bind_DataList();       //數(shù)據(jù)綁定
          }

          private void Bind_Pager()
          {
           lnkFirst.NavigateUrl=PageURL+1;
           lnkFirst.ToolTip="轉(zhuǎn)到第1頁";
           lnkPrev.NavigateUrl=PageURL+(PageIndex-1);
           lnkPrev.ToolTip="轉(zhuǎn)到第"+(PageIndex-1)+"頁";
           lnkNext.NavigateUrl=PageURL+(PageIndex+1);
           lnkNext.ToolTip="轉(zhuǎn)到第"+(PageIndex+1)+"頁";
           lnkLast.NavigateUrl=PageURL+PageCount;
           lnkLast.ToolTip="轉(zhuǎn)到第"+PageCount+"頁";
           if(PageCount==1) //只有1頁
           {
            lnkFirst.Enabled=false;
            lnkPrev.Enabled=false;
            lnkNext.Enabled=false;
            lnkLast.Enabled=false;
           }     //多頁
           else if(PageIndex==1) //當(dāng)前頁為第一頁
           {
            lnkFirst.Enabled=false;
            lnkPrev.Enabled=false;
            lnkNext.Enabled=true;
            lnkLast.Enabled=true;
           }
           else if(PageIndex==PageCount) //當(dāng)前頁為最后頁
           {
            lnkFirst.Enabled=true;
            lnkPrev.Enabled=true;
            lnkNext.Enabled=false;
            lnkLast.Enabled=false;
           }
           else  //中間任意頁
           {
            lnkFirst.Enabled=true;
            lnkPrev.Enabled=true;
            lnkNext.Enabled=true;
            lnkLast.Enabled=true;
           }
           HyperLink NumBtns;
           int PageBase=PageIndex%NumSize==0?PageIndex/NumSize-1:PageIndex/NumSize;
           for(int i=PageBase*NumSize+1;i<=(PageBase+1)*NumSize && i<=PageCount;i++) //分頁按鈕綁定 例如 1-10…,…11-20…...
           {
            if(i!=1 && i==PageBase*NumSize+1)   //頁標(biāo)前的…
            {
             NumBtns = new HyperLink();
             NumBtns.Text="…";
             NumBtns.ToolTip="轉(zhuǎn)到第"+(i-1)+"頁";
             NumBtns.NavigateUrl=PageURL+(i-1);
             NumBtns.Enabled=true;
             NumBtns.CssClass="pager";
             lbPager.Controls.Add(NumBtns);
            }
            if(i==PageIndex)       //當(dāng)前頁
            {
             NumBtns = new HyperLink();
             NumBtns.Text=i.ToString();
             NumBtns.Font.Bold=true;
             NumBtns.ForeColor=Color.Red;
             NumBtns.CssClass="pager";
             lbPager.Controls.Add(NumBtns);
            }
            else          //其他頁
            {
             NumBtns = new HyperLink();
             NumBtns.Text=i.ToString();
             NumBtns.ToolTip="轉(zhuǎn)到第"+i.ToString()+"頁";
             NumBtns.NavigateUrl=PageURL+i.ToString();
             NumBtns.Enabled=true;
             NumBtns.CssClass="pager";
             lbPager.Controls.Add(NumBtns);
            }
            if(i!=PageCount && i==(PageBase+1)*NumSize) //頁標(biāo)后的…
            {
             NumBtns = new HyperLink();
             NumBtns.Text="…";
             NumBtns.ToolTip="轉(zhuǎn)到第"+(i+1)+"頁";
             NumBtns.NavigateUrl=PageURL+(i+1);
             NumBtns.Enabled=true;
             NumBtns.CssClass="pager";
             lbPager.Controls.Add(NumBtns);
            }
           }
          }

          private void Bind_DataList()
          {
           using(SqlConnection myconn=new SqlConnection(ConfigurationSettings.AppSettings["connStr"]))
           {
            SqlCommand mycmd=new SqlCommand("sp_Pager",myconn);
            mycmd.CommandType=CommandType.StoredProcedure;
            mycmd.Parameters.Add(new SqlParameter("@PageSize",SqlDbType.Int));
            mycmd.Parameters["@PageSize"].Value=PageSize;
            mycmd.Parameters.Add(new SqlParameter("@PageIndex",SqlDbType.Int));
            mycmd.Parameters["@PageIndex"].Value=PageIndex;
            myconn.Open();
            this.DataList1.DataSource=mycmd.ExecuteReader();
            this.DataList1.DataBind();
            myconn.Close();
           }
          }

          private void Bind_PagerList()
          {
           for(int i=1;i<=PageCount;i++)
           {
            dlPager.Items.Add(new ListItem("第"+i.ToString()+"頁",i.ToString()));
           }
           dlPager.Attributes["OnChange"]="location.href="/"+PageURL+"'+this.value";
          }

          2.存儲過程

          CREATE PROCEDURE sp_Pager
          (
          @PageSize int,  -- 一頁顯示記錄數(shù)
          @PageIndex int  -- 當(dāng)前頁碼(從1開始)
          )
          as
          declare @strSQL nvarchar(1000) -- 主語句

          if (@PageIndex=1)
          begin
          set @strSQL="select top "+str(@Pagesize)+" * from 數(shù)據(jù)表 order by 排序字段 desc"
          end
          else if(@PageIndex>1)
          begin
          set @strSQL="select top " + str(@PageSize) + "  *  from 數(shù)據(jù)表 where ( 自增字段  <
          (select min (自增字段) from (select top "+ str(@PageSize*(@PageIndex-1)) + " 自增字段 from 數(shù)據(jù)表 order
           by 自增字段 desc) as T )) order by 排序字段 desc"
          end
          exec(@strSQL)
          GO


          評論

          # re: DataList自定義分頁+存儲過程   回復(fù)  更多評論   

          2008-04-06 18:07 by GSD
          抱歉!太復(fù)雜了!沒有源碼!太難理解了!

          # re: DataList自定義分頁+存儲過程   回復(fù)  更多評論   

          2009-05-27 19:12 by 說的說的是
          拜托 給個前臺代碼好不

          # re: DataList自定義分頁+存儲過程   回復(fù)  更多評論   

          2010-01-27 15:06 by nini
          存儲過程執(zhí)行出錯啊

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 丰宁| 济南市| 淮阳县| 太谷县| 西藏| 江都市| 巫溪县| 牟定县| 区。| 承德县| 阿图什市| 固安县| 镇原县| 乌鲁木齐县| 库尔勒市| 滁州市| 搜索| 湘乡市| 无棣县| 嘉兴市| 长白| 繁昌县| 稻城县| 铅山县| 施甸县| 容城县| 合山市| 宁武县| 通山县| 崇信县| 墨江| 滦南县| 平度市| 长泰县| 调兵山市| 富阳市| 桃园县| 隆昌县| 井冈山市| 中阳县| 南丹县|