.net中实现aspnetpager分页

第一步首先导入aspnetpager控件,然后再把他从工具箱中拖出,代码如下:

  < webdiyer : AspNetPager  ID ="aspnetpager1"  runat ="server"  CustomInfoTextAlign ="Left"
             FirstPageText =" 首页  "  LastPageText  =" 末页 "  NextPageText ="  下一页 "  NumericButtonCount  ="5"
             PageIndexBoxType ="TextBox"  PrevPageText =" 上一页  "  ShowPageIndexBox  ="Never"  PageSize ="20"
             AlwaysShow ="True"  CssClass ="paginator"  CurrentPageButtonClass ="cpb"  Wrap ="True"
             BorderStyle ="None"  Width ="100%"  UrlPaging ="True"  CustomInfoClass ="info"  CustomInfoHTML  =""
             CustomInfoSectionWidth ="0px"  OnPageChanged ="aspnetpager1_PageChanged">
         </ webdiyer :  AspNetPager >
并且在页面的上部要引用下面代码:
<% @  Register  Assembly ="AspNetPager"  Namespace ="Wuqi.Webdiyer"  TagPrefix ="webdiyer"  %>
之后要在引用里添加aspnetpager.dll引用
 
然后在后台page_load里添加以下分页代码:
                    Page_gkxx  sp =  new  Page_gkxx ();
 
                    aspnetpager1.EnableUrlRewriting =  true  ;
                aspnetpager1.UrlRewritePattern =  "/zuowen/list-"  + ParentTypeId +  "-"  + TypeId +  "-"  + GradeId +  "-{0}.html"  ;
                sp.InitBindData(Repeater1, aspnetpager1,  "zuowen"  ,  "id"  , Sear(), GetFields());
其中InitBindData 方法 代码为:
public   void  InitBindData(  Control  c, Wuqi.Webdiyer.  AspNetPager  aspnet,  string  tbname,  string  tbcolumn,  string sqlwhere, string  sfields)
        {
            aspnet.RecordCount = GetRows(tbname, sqlwhere);
             if  (aspnet.RecordCount > 0)
            {
                 string  contype = c.GetType().ToString();
 
                 DataSet  ds = GetList(tbname, tbcolumn,sfields,aspnet.PageSize, aspnet.CurrentPageIndex, sqlwhere);
 
 
                 if  (ds.Tables[0].Rows.Count > 0)
                {
                     if  (contype.IndexOf( "GridView"  ) != -1)
                    {
                         GridView  gv = ( GridView  )c;
                        gv.DataSource = ds;
                        gv.DataBind();
                    }
                     else   if  (contype.IndexOf(  "Repeater" ) != -1)
                    {
                         Repeater  rep = ( Repeater  )c;
                        rep.DataSource = ds;
                        rep.DataBind();
                    }
                     else   if  (contype.IndexOf(  "DataList" ) != -1)
                    {
                         DataList  dl = ( DataList  )c;
                        dl.DataSource = ds;
                        dl.DataBind();
                    }
                    c.Visible =  true  ;
                }
            }
             else
            {
                c.Visible =  false  ;
            }
 
        }
private   int  GetRows(  string  tablename,  string  strwhere)
        {
             string  strSql =  "select count(1) from "  + tablename +  " with(nolock) where "  + strwhere +  ""  ;
             return   int  .Parse(  DbHelperSQL .GetSingle(strSql).ToString());
        }
         ///   <summary>
         ///  分页获取数据列表
         ///   </summary>
         ///   <param name="PageSize"></param>
         ///   <param name="PageIndex"></param>
         ///   <param name="strWhere"></param>
         ///   <returns></returns>
         public   DataSet  GetList(  string  tablename,  string  keyname,  string  sfields,  int   PageSize,  int  PageIndex,  string strWhere)
        {
             SqlParameter  [] parameters = {
                                                                                  new   SqlParameter  (  "@tblName" SqlDbType  .VarChar, 255),
                                                                                  new   SqlParameter  (  "@fldName" SqlDbType  .VarChar, 255),
                     new   SqlParameter  (  "@sFields" ,  SqlDbType  .VarChar,1000),
                                                                                  new   SqlParameter  (  "@PageSize" SqlDbType  .Int),
                                                                                  new   SqlParameter  (  "@PageIndex" SqlDbType  .Int),
                                                                                  new   SqlParameter  (  "@IsReCount" SqlDbType  .Bit),
                                                                                  new   SqlParameter  (  "@OrderType" SqlDbType  .Bit),
                                                                                  new   SqlParameter  (  "@strWhere" SqlDbType  .VarChar,1000),
                                                                                };
            parameters[0].Value = tablename;
            parameters[1].Value = keyname;
            parameters[2].Value = sfields;
            parameters[3].Value = PageSize;
            parameters[4].Value = PageIndex;
            parameters[5].Value = 0;
            parameters[6].Value = 1;
            parameters[7].Value = strWhere;
             return   DbHelperSQL  .RunProcedure(  "Up_GetRecordByPage" , parameters,  "ds"  );
        }
这是在 DbHelperSQL  中的方法:
   ///   <summary>
     ///  执行存储过程返回dataset
     ///   </summary>
     ///   <param name="storedProcName">  存储过程名  </param>
     ///   <param name="parameters">  存储过程参数  </param>
     ///   <param name="tableName">  DataSet结果中的表名  </param>
     ///   <returns>  DataSet </returns>
     public   static   DataSet  RunProcedure(  string  storedProcName,  IDataParameter  [] parameters,  string  tableName)
    {
         using  ( SqlConnection  connection =  new   SqlConnection (connectionString))
        {
             DataSet  dataSet =  new  DataSet ();
            connection.Open();
             SqlDataAdapter  sqlDA =  new  SqlDataAdapter ();
            sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
            sqlDA.Fill(dataSet, tableName);
            connection.Close();
             return  dataSet;
        }
    }
 
    ///   <summary>
     ///  执行一条计算查询结果语句,返回查询结果(object)。
     ///   </summary>
     ///   <param name="SQLString">  计算查询结果语句  </param>
     ///   <returns>  查询结果(object)  </returns>
     public   static   object  GetSingle(  string  SQLString)
    {
         using  ( SqlConnection  connection =  new   SqlConnection (connectionString))
        {
             using  ( SqlCommand  cmd =  new   SqlCommand (SQLString, connection))
            {
                 try
                {
                    connection.Open();
                     object  obj = cmd.ExecuteScalar();
                     if  (( Object  .Equals(obj,  null )) || (  Object  .Equals(obj, System. DBNull  .Value)))
                    {
                         return   null  ;
                    }
                     else
                    {
                         return  obj;
                    }
                }
                 catch  (System.Data.SqlClient. SqlException  e)
                {
                    connection.Close();
                    connection.Dispose();
 
                     throw   new  Exception (e.Message);
                }
 
            }
        }
    }
这是Sear()方法的代码:
         ///   <summary>
         ///  根据传值进行搜索分页
         ///   </summary>
         ///   <returns></returns>
         private   string  Sear()
        {
             StringBuilder  sb =  new  StringBuilder ();
            sb.Append(  "1=1"  );
             if  (ParentTypeId != 0)
                sb.AppendFormat(  " and ptypeid={0}"  ,ParentTypeId);
             if  (TypeId != 0)
                sb.AppendFormat(  " and typeid={0}"  ,TypeId);
             if  (GradeId != 0)
                sb.AppendFormat(  " and gid={0}"  , GradeId);
             return  sb.ToString();
        }
这是获取分页中显示的内容代码:
   private   string  GetFields()
        {
             return   "id,title,addtime,Content,typeid,ptypeid,views"  ;
        }
 
接着添加分页的事件:
private   void  ZuowenHotBind()
        {
             DataSet  ds =  ZuowenDal  .GetList(10,  "addtime>'"  +  DateTime  .Now.AddMonths(-3).ToString() +  "'"  "views desc"  );
             if  (ds.Tables[0].Rows.Count > 0)
            {
                RepHot.DataSource = ds;
                RepHot.DataBind();
            }
        }
以上操作基本完成了aspnetpager分页是实现,又不懂的问题可以直接评论回复。
(代码用到了封装的 DbHelperSQL .cs )

转载于:https://www.cnblogs.com/liuyanpeng/p/4571658.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值