日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

牛腩新聞發(fā)布系統(tǒng) 總結(jié) 1:aspnetpager 使用總

系統(tǒng) 2005 0

要使用 aspnetpager 的過程

1:要下載引用 aspnetpager 控件

?

2:要有分頁的存儲(chǔ)過程,可以單表查詢,也可以多表查詢

-- =============================================
-- Author: 牛腩
-- Create date: 2009-07-22 12:41
-- Description: 分頁,用到了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,????????? -- 頁尺寸,默認(rèn)
@PageIndex int = 1,?????????? -- 頁碼,默認(rèn)
@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)

3:在工具欄托 aspnetpager控件到需要分頁的地方,然后在 代碼里面需要設(shè)置


int

pagesize = anp.PageSize;??? //這個(gè)其實(shí)是為 分頁的存儲(chǔ)過程的調(diào)用準(zhǔn)備的


int pageindex = anp.CurrentPageIndex;????????? //同上


anp.RecordCount = nm.CalcCount(cond);????????? //這是設(shè)置 anp分頁空間的總的記錄數(shù)


repNews.DataSource = nm.Select(pagesize, pageindex, cond);???? //這里就是分頁控件的使用(取出1個(gè)頁面的數(shù)據(jù),僅僅是1個(gè)頁面的,非所有的頁面數(shù)據(jù))

repNews.DataBind();


?

分頁的函數(shù)如下

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

        {

            
      
        //執(zhí)行分頁的存儲(chǔ)過程  [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
      
      ),   
      
        //通過time來排序
      
      
        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;

        }


    

?

4:設(shè)置分頁的樣式,可以使用拍拍網(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 "

5:設(shè)置是否為 Url 分頁或者是默認(rèn)的 postback提交,或者是其他的。

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

                    FirstPageText="
      
        首頁
      
      " LastPageText="
      
        尾頁
      
      " NextPageText="
      
        下一頁
      
      " PrevPageText="
      
        上一頁
      
      " 

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

                    ShowCustomInfoSection="
      
        Left
      
      " CssClass="
      
        paginator
      
      " 

                    CurrentPageButtonClass="
      
        cpb
      
      " CustomInfoSectionWidth="" 

                    onpagechanged="
      
        anp_PageChanged
      
      "   >


    

?

6:切記要雙擊一下 anp 控件,生成一個(gè)? 函數(shù),表示當(dāng)我們點(diǎn)擊分頁之后,我們要做什么?(實(shí)際上就是綁定數(shù)據(jù),同第3步驟)

    
      protected
    
    
      void
    
     anp_PageChanged(
    
      object
    
     sender, EventArgs e)

    {

        BindNews();

    }


  

大概就這么多就可以了

?

?

但是有以下小的注意事項(xiàng):

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

?

?

要使用? ajax 控件的過程

1:假如,我們的數(shù)據(jù)是在一個(gè)表格的 GridView 或者是 repeater 里面的話,我們就可以把這個(gè)表格 或者是 div 的兩頭加上 UpdatePanel 控件。

并且在 UpdatePanel 的前面,加上一個(gè)? ScriptManager 控件就可以了

?

2:假如我們?cè)?ajax控件里面有用到分頁控件,那么如果是 postback提交分頁,則ajax有效,如果是 url 分頁,那么分頁就會(huì)變成 page=2 這樣。

?

3:如果是我們自己手寫 ajax ,而不是用 系統(tǒng)自帶的 ajax控件的話,那么一般是傳值給一個(gè)? ashx 一般處理程序

用jquery 這個(gè)js控件,可以很好的幫助我們簡(jiǎn)化操作。

在用jquery 的時(shí)候,如果是get方式,那么要注意 數(shù)據(jù)的緩存(用url后面加多一個(gè)隨機(jī)的時(shí)間來解決)和二次轉(zhuǎn)碼,并且 ashx 端接收數(shù)據(jù)還要進(jìn)行一次解碼

?

下面是JS端,分別是 get方式和 post 方式

?

    
      //使用 jquery 的ajax 的get方法  需要對(duì)字符進(jìn)行二次轉(zhuǎn)碼,并且要考慮 IE緩存的問題  ,并且在服務(wù)器的 ashx 頁面 要進(jìn)行解碼
    
    
      // var url="../handler/ChangeCaName.ashx?caname="+ encodeURI(encodeURI(newText)) +"&caid="+caid+"&t="+new Date().getTime();            
    
    
      // $.get(url)
    
    

               

               $.post("
    
      ../handler/ChangeCaName.ashx
    
    ", { caname: newText, caid: caid },
    
      function
    
    (data){

                    
    
      if
    
    (data=="
    
      類別已經(jīng)存在,修改失敗
    
    ")

                    {

                        
    
      alert
    
    (data);

                        objSPAN.html(oldcaname);

                    }

                    
    
      else
    
    

                    {

                        objSPAN.html(newText);

                    }


  
    下面是  ashx 一般處理程序接收端
  
    
      // string caname = context.Server.UrlDecode(context.Request.QueryString["caname"]);  ////獲取用 juqry的get方式傳來的字符串,需要解碼
    
    
      string
    
     caname = context.Request.Form["
    
      caname
    
    "];



        
    
      bool
    
     b = 
    
      new
    
     CategoryManager().IsExists(caname);

        
    
      if
    
     (!b)

        {

            
    
      //開始修改類別
    
    
      string
    
     id = context.Request.Form["
    
      caid
    
    "];



            Category ca = 
    
      new
    
     Category(id, caname);



            
    
      new
    
     CategoryManager().Update(ca);



            context.Response.Write("
    
      類別修改成功
    
    ");



        }

        
    
      else
    
    

        {

            context.Response.Write("
    
      類別已經(jīng)存在,修改失敗
    
    ");

        }


  

牛腩新聞發(fā)布系統(tǒng) 總結(jié) 1:aspnetpager 使用總結(jié) ajax控件總結(jié)


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 开封市| 博客| 信宜市| 南宁市| 新绛县| 虹口区| 东乌珠穆沁旗| 会昌县| 宿州市| 左权县| 东源县| 姜堰市| 库伦旗| 康马县| 连江县| 清涧县| 余江县| 平罗县| 静安区| 仪陇县| 邯郸县| 祁门县| 翁源县| 江达县| 怀安县| 乌拉特前旗| 绥化市| 郁南县| 岳阳县| 遂平县| 恩平市| 蓬安县| 漳平市| 陈巴尔虎旗| 德保县| 镇原县| 万州区| 普宁市| 罗田县| 闽清县| 浦城县|