黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

牛腩購(gòu)物小結(jié)之: anpnetpager分頁(yè)控件的使用圖

系統(tǒng) 2122 0

分頁(yè)控件的使用

一:下載,并在 vs2010 里面添加? anpnetpager 控件

1:? 下載?? http://www.webdiyer.com/Controls/AspNetPager/Downloads 下載

image

2:?? 將 AspNetPager.dll 和 AspNetPager.xml 考入到項(xiàng)目的 bin 文件夾 并在Bin文件夾上引用AspNetPager。(這一步其實(shí)可以用不,執(zhí)行下面的第三部,就會(huì)把第二步執(zhí)行一次的,不過(guò)這個(gè) xml 好像不會(huì)自動(dòng)考進(jìn)來(lái),所以我們還是把第一步 執(zhí)行比較好)

? image 拷貝到 web層的Bin文件夾,并引用。

?

3:在VS2010 工具欄上面,右鍵新建項(xiàng),然后找到剛才 bin文件的 AspNetPager.dll ,這樣在工具欄就可以使用 AspNetPager了,將控件拖到你需要分頁(yè)的地方,就可以了。

image image

然后就可以在工具欄看到 AspNetPager 控件了

image

?

二: 下面開(kāi)始如何分頁(yè)的步驟

1:分頁(yè)控件的準(zhǔn)備,我們上面已經(jīng)做好了

2:在sql2005以及以上,運(yùn)行分頁(yè)的存儲(chǔ)過(guò)程

      
        -- =============================================
      
      
        -- Author:		牛腩
      
      
        -- Create date: 2009-07-22 12:41
      
      
        -- Description:	分頁(yè),用到了ROW_NUMBER()
      
      
        -- =============================================
      
      
        ALTER
      
      
        PROCEDURE
      
       [dbo].[proc_FenYe]

@tblName   
      
        varchar
      
      (255),       
      
        -- 表名
      
      

@strGetFields 
      
        varchar
      
      (1000) = '
      
        *
      
      ', 
      
        -- 需要返回的列,默認(rèn)*
      
      

@strOrder 
      
        varchar
      
      (255)='
      
      
      ',      
      
        -- 排序的字段名,必填
      
      

@strOrderType 
      
        varchar
      
      (10)='
      
        ASC
      
      ', 
      
        -- 排序的方式,默認(rèn)ASC
      
      

@PageSize   
      
        int
      
       = 10,          
      
        -- 頁(yè)尺寸,默認(rèn)10
      
      

@PageIndex 
      
        int
      
       = 1,           
      
        -- 頁(yè)碼,默認(rèn)1
      
      

@strWhere 
      
        varchar
      
      (1500) = '
      
      
      ' 
      
        -- 查詢條件 (注意: 不要加 where)
      
      
        AS
      
      
        declare
      
       @strSQL   
      
        varchar
      
      (5000)




      
        if
      
       @strWhere !='
      
      
      '


      
        set
      
       @strWhere='
      
         where 
      
      '+@strWhere




      
        set
      
       @strSQL=

'
      
        SELECT * FROM (
      
      '+

	'
      
        SELECT ROW_NUMBER() OVER (ORDER BY 
      
      '+@strOrder+'
      
      
      '+@strOrderType+'
      
        ) AS pos,
      
      '+@strGetFields+'
      
      
      '+

	'
      
        FROM 
      
      '+@tblName+'
      
      
      '+@strWhere+

'
      
        ) AS sp WHERE pos BETWEEN 
      
      '+str((@PageIndex-1)*@PageSize+1)+'
      
         AND 
      
      '+str(@PageIndex*@PageSize)




      
        exec
      
       (@strSQL)
    

注意:如果用到多表查詢,還是使用上面的這個(gè)存儲(chǔ)過(guò)程,下面是在sqlserver 2005 中的查詢分析器中調(diào)用 上面的存儲(chǔ)過(guò)程來(lái)進(jìn)行多表查詢

      //這里是在存儲(chǔ)過(guò)程里面的調(diào)用方法,可以使用多表查詢的。


      
        EXEC
      
          [proc_ShowPage]   

        @tblName = N'
      
        (project p inner join projectca ca on p.caid=ca.id)
      
      ',   

        @strGetFields = N'
      
        p.title,ca.caname
      
      ',   

        @strOrder = N'
      
        p.id
      
      ',   

        @strOrderType = N'
      
        desc
      
      ',   

        @PageSize = 12,   

        @PageIndex = 1,   

        @strWhere = N'
      
      
      ' 
    

?

2:在頁(yè)面上需要使用分頁(yè)控件的地方,拉入控件,修改 上一頁(yè),下一頁(yè),尾頁(yè)和首頁(yè)的文字,設(shè)置為一直顯示。

      <webdiyer:AspNetPager ID="
      
        anp
      
      " runat="
      
        server
      
      " AlwaysShow="
      
        True
      
      " 

                    FirstPageText="
      
        首頁(yè)
      
      " LastPageText="
      
        尾頁(yè)
      
      " NextPageText="
      
        下一頁(yè)
      
      " PrevPageText="
      
        上一頁(yè)
      
      " 

                    CustomInfoHTML="
      
        總計(jì)%RecordCount%條記錄,共%PageCount%頁(yè),每頁(yè)%PageSize%條
      
      " 

                    ShowCustomInfoSection="
      
        Left
      
      " CssClass="
      
        paginator
      
      " 

                    CurrentPageButtonClass="
      
        cpb
      
      " CustomInfoSectionWidth="
      
      
      "  >


    

然后設(shè)置它的CSS,使用拍拍網(wǎng)的樣式

      
        
.paginator
{ font : 11px Arial, Helvetica, sans-serif ; padding : 10px 20px 10px 0 ; margin : 0px ;} .paginator a { padding : 1px 6px ; border : solid 1px #ddd ; background : #fff ; text-decoration : none ; margin-right : 2px } .paginator a:visited { padding : 1px 6px ; border : solid 1px #ddd ; background : #fff ; text-decoration : none ;} .paginator .cpb { padding : 1px 6px ; font-weight : bold ; font-size : 13px ; border : none } .paginator a:hover { color : #fff ; background : #ffa501 ; border-color : #ffa501 ; text-decoration : none ;}






然后給 anp控件加上 屬性設(shè)置: CssClass=" paginator " CurrentPageButtonClass=" cpb "

?

3:在分頁(yè)控件上,雙擊 進(jìn)入后臺(tái)編寫(xiě)分頁(yè)控件點(diǎn)擊的代碼(先是統(tǒng)計(jì)anp分頁(yè)控件的所有的產(chǎn)品數(shù),然后是給產(chǎn)品rep綁定)

    Niunan.Shop.DAL.
    
      ProductDAO 
    
    pro = 
    
      new 
    
    DAL.
    
      ProductDAO
    
    ();

        
    
      protected void 
    
    Page_Load(
    
      object 
    
    sender, 
    
      EventArgs 
    
    e)

        {

            
    
      //頁(yè)面進(jìn)入的時(shí)候,分頁(yè)控件先統(tǒng)計(jì)總的條數(shù),然后綁定產(chǎn)品

            
    
    
      if 
    
    (!Page.IsPostBack)

            {

                anp.RecordCount = pro.ClacCount(getCond());

                BindRepPro();

            }

        }



        
    
      //綁定產(chǎn)品

        
    
    
      private void 
    
    BindRepPro()

        {

            
    
      //這里獲取產(chǎn)品的時(shí)候,是調(diào)用分頁(yè)來(lái)調(diào)用。分頁(yè)的個(gè)數(shù)由 anp.PageSize 控制

            
    
    repNewPro.DataSource = pro.GetList(
    
      "*"
    
    , 
    
      "id"
    
    , 
    
      "desc"
    
    , anp.PageSize, anp.CurrentPageIndex, getCond());

            repNewPro.DataBind();

        }



        
    
      //獲取條件

        
    
    
      private string 
    
    getCond()

        {

            
    
      string 
    
    cond = 
    
      "isxp=1"
    
    ;

            
    
      return 
    
    cond;

        }

        
    
      //分頁(yè)控件點(diǎn)擊事件(實(shí)際上就是重新綁定產(chǎn)品)

        
    
    
      protected void 
    
    anp_PageChanged(
    
      object 
    
    sender, 
    
      EventArgs 
    
    e)

        {

            BindRepPro();

        }


  

注釋事項(xiàng):

我們?cè)趯?xiě)一般的存儲(chǔ)過(guò)程/多表查詢的時(shí)候,要記得,用 inner join 這個(gè)是個(gè)好習(xí)慣,因?yàn)槲覀円话愕拇鎯?chǔ)過(guò)程,要轉(zhuǎn)換為 分頁(yè)的查詢的時(shí)候,有這個(gè) inner join 就很明顯的知道是查詢哪幾張表

假如我們?cè)?ajax控件里面有用到分頁(yè)控件,那么如果是 postback提交分頁(yè) ,則ajax有效(也就是url不會(huì)有動(dòng)靜,但是頁(yè)面有修改), 如果是 url 分頁(yè) ,那么頁(yè)面的url會(huì)跟著改變了,就會(huì)變成 page=2 這樣。

?

更加詳細(xì)的設(shè)置,參見(jiàn)下面2篇分頁(yè)文章?

1:牛腩新聞發(fā)布系統(tǒng)? http://www.cnblogs.com/1727050508/archive/2012/02/29/2373612.html

2:牛腩購(gòu)物系統(tǒng)??????? http://www.cnblogs.com/1727050508/archive/2012/03/05/2379982.html

?

?

?

注意:1使用的分頁(yè)函數(shù)是 只有3個(gè)參數(shù)的

image

2:使用的是 6個(gè) 參數(shù)的(實(shí)際存儲(chǔ)過(guò)程需要7個(gè)參數(shù),但是表名我們是手動(dòng)在下面寫(xiě)了 shop_product)

    
      /// <summary>
    
    
      分頁(yè)獲取數(shù)據(jù)列表

        
    
    
      /// 

        /// </summary>

        /// <param name="strGetFields">
    
    
      選擇的字段
    
    
      </param>

        /// <param name="strOrder">
    
    
      排序字段
    
    
      </param>

        /// <param name="strOrderType">
    
    
      排序類(lèi)型 desc或者asc
    
    
      </param>

        /// 
    
    
      /// 
    
    
      <param name="PageSize">
    
    
      頁(yè)面大小
    
    
      </param>

        /// <param name="PageIndex">
    
    
      頁(yè)索引
    
    
      </param>

        /// <param name="strWhere">
    
    
      條件
    
    
      </param>

        /// <returns></returns>

        
    
    
      public 
    
    
      DataSet 
    
    GetList(
    
      string 
    
    strGetFields, 
    
      string 
    
    strOrder, 
    
      string 
    
    strOrderType, 
    
      int 
    
    PageSize, 
    
      int 
    
    PageIndex, 
    
      string 
    
    strWhere)

        {

            
    
      Database 
    
    db = 
    
      DatabaseFactory
    
    .CreateDatabase();

            
    
      DbCommand 
    
    dbCommand = db.GetStoredProcCommand(
    
      "proc_FenYe"
    
    );

            db.AddInParameter(dbCommand, 
    
      "tblName"
    
    , 
    
      DbType
    
    .AnsiString, 
    
      "shop_product"
    
    );

            db.AddInParameter(dbCommand, 
    
      "strGetFields"
    
    , 
    
      DbType
    
    .AnsiString, strGetFields);

            db.AddInParameter(dbCommand, 
    
      "PageSize"
    
    , 
    
      DbType
    
    .Int32, PageSize);

            db.AddInParameter(dbCommand, 
    
      "PageIndex"
    
    , 
    
      DbType
    
    .Int32, PageIndex);

            db.AddInParameter(dbCommand, 
    
      "strOrder "
    
    , 
    
      DbType
    
    .String, strOrder);

            db.AddInParameter(dbCommand, 
    
      "strOrderType"
    
    , 
    
      DbType
    
    .String, strOrderType);

            db.AddInParameter(dbCommand, 
    
      "strWhere"
    
    , 
    
      DbType
    
    .AnsiString, strWhere);

            
    
      return 
    
    db.ExecuteDataSet(dbCommand);

        }



        
    
      /// <summary>
    
    
      獲取總的記錄數(shù)

        
    
    
      /// 

        /// </summary>

        /// <param name="strWhere"></param>

        /// <returns></returns>

        
    
    
      public int 
    
    ClacCount(
    
      string 
    
    strWhere)

        {

            
    
      string 
    
    sql = 
    
      "select count(1) from shop_product"
    
    ;

            
    
      if 
    
    (!
    
      string
    
    .IsNullOrEmpty(strWhere))

            {

                sql += 
    
      " where " 
    
    + strWhere;

            }

            
    
      Database 
    
    db = 
    
      DatabaseFactory
    
    .CreateDatabase();

            
    
      DbCommand 
    
    dbCommand = db.GetSqlStringCommand(sql);

            
    
      return int
    
    .Parse(db.ExecuteScalar(dbCommand).ToString());



        }


  

3:在牛腩新聞發(fā)布系統(tǒng)的時(shí)候,使用過(guò)一次多表查詢分頁(yè),但是是3個(gè)參數(shù)的,以后我們使用的時(shí)候,修改成多個(gè)參數(shù)即可

    
      /// <summary>分頁(yè)選擇新聞
    
    
      /// 
    
    
      /// </summary>
    
    
      /// <param name="pageSize">頁(yè)面大小</param>
    
    
      /// <param name="pageIndex">頁(yè)索引</param>
    
    
      /// <param name="cond">條件(不用加where)</param>
    
    
      /// <returns></returns>
    
    
      public
    
     DataTable Select(
    
      int
    
     pageSize, 
    
      int
    
     pageIndex, 
    
      string
    
     cond)

        {

            
    
      //執(zhí)行分頁(yè)的存儲(chǔ)過(guò)程  [proc_FenYe]
    
    

            DataTable dt = 
    
      new
    
     DataTable();

            
    
      string
    
     procname = "
    
      proc_FenYe
    
    ";

            SqlParameter[] paras = 
    
      new
    
     SqlParameter[]{

            
    
      new
    
     SqlParameter("
    
      @tblName
    
    ","
    
      (news a inner join  category b on a.caId=b.id and a.caId=b.id)
    
    " 
    
      as
    
    
      object
    
    ),

            
    
      new
    
     SqlParameter("
    
      @strGetFields
    
    ","
    
      a.id,a.title,a.caid,a.createtime,a.content,b.name
    
    " 
    
      as
    
    
      object
    
    ),

            
    
      new
    
     SqlParameter("
    
      @strOrder
    
    ","
    
      a.createtime
    
    " 
    
      as
    
    
      object
    
    ),   
    
      //通過(guò)time來(lái)排序
    
    
      new
    
     SqlParameter("
    
      @strOrderType
    
    ","
    
      desc
    
    " 
    
      as
    
    
      object
    
    ),

            
    
      new
    
     SqlParameter("
    
      @PageSize 
    
    ",pageSize 
    
      as
    
    
      object
    
    ),

            
    
      new
    
     SqlParameter("
    
      @PageIndex
    
    ",pageIndex 
    
      as
    
    
      object
    
    ),

            
    
      new
    
     SqlParameter("
    
      @strWhere
    
    ",cond 
    
      as
    
    
      object
    
    )

            };

            dt = 
    
      new
    
     SQLHelper().ExecuteQuery(procname, paras, CommandType.StoredProcedure);

            
    
      return
    
     dt;

        }


  

牛腩購(gòu)物小結(jié)之: anpnetpager分頁(yè)控件的使用圖文教程,anpnetpager分頁(yè)多表查詢


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論