您的位置:首页 > 编程语言 > ASP

.net中实现aspnetpager分页

2015-06-12 14:47 645 查看
第一步首先导入aspnetpager控件,然后再把他从工具箱中拖出,代码如下:

[align=left] <webdiyer:AspNetPager ID="aspnetpager1" runat="server" CustomInfoTextAlign="Left"[/align]
[align=left] FirstPageText="首页 " LastPageText ="末页" NextPageText=" 下一页" NumericButtonCount ="5"[/align]
[align=left] PageIndexBoxType="TextBox" PrevPageText="上一页 " ShowPageIndexBox ="Never" PageSize="20"[/align]
[align=left] AlwaysShow="True" CssClass="paginator" CurrentPageButtonClass="cpb" Wrap="True"[/align]
[align=left] BorderStyle="None" Width="100%" UrlPaging="True" CustomInfoClass="info" CustomInfoHTML =""[/align]
[align=left] CustomInfoSectionWidth="0px" OnPageChanged="aspnetpager1_PageChanged">[/align]
[align=left] </webdiyer: AspNetPager>[/align]
[align=left]并且在页面的上部要引用下面代码:[/align]

[align=left]<%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>[/align]
[align=left]之后要在引用里添加aspnetpager.dll引用[/align]
[align=left][/align]
[align=left]然后在后台page_load里添加以下分页代码:[/align]

[align=left] Page_gkxx sp = new Page_gkxx();[/align]

[align=left][/align]

[align=left] aspnetpager1.EnableUrlRewriting = true ;[/align]
[align=left] aspnetpager1.UrlRewritePattern = "/zuowen/list-" + ParentTypeId + "-" + TypeId + "-" + GradeId + "-{0}.html" ;[/align]
[align=left] sp.InitBindData(Repeater1, aspnetpager1, "zuowen" , "id" , Sear(), GetFields());[/align]
[align=left]其中InitBindData方法代码为:[/align]

[align=left]public void InitBindData( Control c, Wuqi.Webdiyer. AspNetPager aspnet, string tbname, string tbcolumn, stringsqlwhere,string sfields)[/align]
[align=left] {[/align]
[align=left] aspnet.RecordCount = GetRows(tbname, sqlwhere);[/align]
[align=left] if (aspnet.RecordCount > 0)[/align]
[align=left] {[/align]
[align=left] string contype = c.GetType().ToString();[/align]
[align=left] [/align]
[align=left] DataSet ds = GetList(tbname, tbcolumn,sfields,aspnet.PageSize, aspnet.CurrentPageIndex, sqlwhere);[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] if (ds.Tables[0].Rows.Count > 0)[/align]
[align=left] {[/align]
[align=left] if (contype.IndexOf("GridView" ) != -1)[/align]
[align=left] {[/align]
[align=left] GridView gv = (GridView )c;[/align]
[align=left] gv.DataSource = ds;[/align]
[align=left] gv.DataBind();[/align]
[align=left] }[/align]
[align=left] else if (contype.IndexOf( "Repeater") != -1)[/align]
[align=left] {[/align]
[align=left] Repeater rep = (Repeater )c;[/align]
[align=left] rep.DataSource = ds;[/align]
[align=left] rep.DataBind();[/align]
[align=left] }[/align]
[align=left] else if (contype.IndexOf( "DataList") != -1)[/align]
[align=left] {[/align]
[align=left] DataList dl = (DataList )c;[/align]
[align=left] dl.DataSource = ds;[/align]
[align=left] dl.DataBind();[/align]
[align=left] }[/align]
[align=left] c.Visible = true ;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] c.Visible = false ;[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]

[align=left]private int GetRows( string tablename, string strwhere)[/align]
[align=left] {[/align]
[align=left] string strSql = "select count(1) from " + tablename + " with(nolock) where " + strwhere + "" ;[/align]
[align=left] return int .Parse( DbHelperSQL.GetSingle(strSql).ToString());[/align]
[align=left] }[/align]
[align=left] /// <summary>[/align]
[align=left] /// 分页获取数据列表[/align]
[align=left] /// </summary>[/align]
[align=left] /// <param name="PageSize"></param>[/align]
[align=left] /// <param name="PageIndex"></param>[/align]
[align=left] /// <param name="strWhere"></param>[/align]
[align=left] /// <returns></returns>[/align]
[align=left] public DataSet GetList( string tablename, string keyname, string sfields, int PageSize, int PageIndex, stringstrWhere)[/align]
[align=left] {[/align]
[align=left] SqlParameter [] parameters = {[/align]
[align=left] new SqlParameter ( "@tblName", SqlDbType .VarChar, 255),[/align]
[align=left] new SqlParameter ( "@fldName", SqlDbType .VarChar, 255),[/align]
[align=left] new SqlParameter ( "@sFields", SqlDbType .VarChar,1000),[/align]
[align=left] new SqlParameter ( "@PageSize", SqlDbType .Int),[/align]
[align=left] new SqlParameter ( "@PageIndex", SqlDbType .Int),[/align]
[align=left] new SqlParameter ( "@IsReCount", SqlDbType .Bit),[/align]
[align=left] new SqlParameter ( "@OrderType", SqlDbType .Bit),[/align]
[align=left] new SqlParameter ( "@strWhere", SqlDbType .VarChar,1000),[/align]
[align=left] };[/align]
[align=left] parameters[0].Value = tablename;[/align]
[align=left] parameters[1].Value = keyname;[/align]
[align=left] parameters[2].Value = sfields;[/align]
[align=left] parameters[3].Value = PageSize;[/align]
[align=left] parameters[4].Value = PageIndex;[/align]
[align=left] parameters[5].Value = 0;[/align]
[align=left] parameters[6].Value = 1;[/align]
[align=left] parameters[7].Value = strWhere;[/align]
[align=left] return DbHelperSQL .RunProcedure( "Up_GetRecordByPage", parameters, "ds" );[/align]
[align=left] }[/align]
[align=left]这是在DbHelperSQL 中的方法:[/align]

[align=left] /// <summary>[/align]
[align=left] /// 执行存储过程返回dataset[/align]
[align=left] /// </summary>[/align]
[align=left] /// <param name="storedProcName"> 存储过程名 </param>[/align]
[align=left] /// <param name="parameters"> 存储过程参数 </param>[/align]
[align=left] /// <param name="tableName"> DataSet结果中的表名 </param>[/align]
[align=left] /// <returns> DataSet</returns>[/align]
[align=left] public static DataSet RunProcedure( string storedProcName, IDataParameter [] parameters, string tableName)[/align]
[align=left] {[/align]
[align=left] using (SqlConnection connection = new SqlConnection(connectionString))[/align]
[align=left] {[/align]
[align=left] DataSet dataSet = new DataSet();[/align]
[align=left] connection.Open();[/align]
[align=left] SqlDataAdapter sqlDA = new SqlDataAdapter();[/align]
[align=left] sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);[/align]
[align=left] sqlDA.Fill(dataSet, tableName);[/align]
[align=left] connection.Close();[/align]
[align=left] return dataSet;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] [/align]

[align=left] /// <summary>[/align]
[align=left] /// 执行一条计算查询结果语句,返回查询结果(object)。[/align]
[align=left] /// </summary>[/align]
[align=left] /// <param name="SQLString"> 计算查询结果语句 </param>[/align]
[align=left] /// <returns> 查询结果(object) </returns>[/align]
[align=left] public static object GetSingle( string SQLString)[/align]
[align=left] {[/align]
[align=left] using (SqlConnection connection = new SqlConnection(connectionString))[/align]
[align=left] {[/align]
[align=left] using (SqlCommand cmd = new SqlCommand(SQLString, connection))[/align]
[align=left] {[/align]
[align=left] try[/align]
[align=left] {[/align]
[align=left] connection.Open();[/align]
[align=left] object obj = cmd.ExecuteScalar();[/align]
[align=left] if ((Object .Equals(obj, null)) || ( Object .Equals(obj, System.DBNull .Value)))[/align]
[align=left] {[/align]
[align=left] return null ;[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] return obj;[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] catch (System.Data.SqlClient.SqlException e)[/align]
[align=left] {[/align]
[align=left] connection.Close();[/align]
[align=left] connection.Dispose();[/align]
[align=left] [/align]
[align=left] throw new Exception(e.Message);[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left] }[/align]

[align=left]这是Sear()方法的代码:[/align]

[align=left] /// <summary>[/align]
[align=left] /// 根据传值进行搜索分页[/align]
[align=left] /// </summary>[/align]
[align=left] /// <returns></returns>[/align]
[align=left] private string Sear()[/align]
[align=left] {[/align]
[align=left] StringBuilder sb = new StringBuilder();[/align]
[align=left] sb.Append( "1=1" );[/align]
[align=left] if (ParentTypeId != 0)[/align]
[align=left] sb.AppendFormat( " and ptypeid={0}" ,ParentTypeId);[/align]
[align=left] if (TypeId != 0)[/align]
[align=left] sb.AppendFormat( " and typeid={0}" ,TypeId);[/align]
[align=left] if (GradeId != 0)[/align]
[align=left] sb.AppendFormat( " and gid={0}" , GradeId);[/align]
[align=left] return sb.ToString();[/align]
[align=left] }[/align]

[align=left]这是获取分页中显示的内容代码:[/align]

[align=left] private string GetFields()[/align]
[align=left] {[/align]
[align=left] return "id,title,addtime,Content,typeid,ptypeid,views" ;[/align]
[align=left] }[/align]
[align=left] [/align]

[align=left]接着添加分页的事件:[/align]

[align=left]private void ZuowenHotBind()[/align]
[align=left] {[/align]
[align=left] DataSet ds = ZuowenDal .GetList(10, "addtime>'" + DateTime .Now.AddMonths(-3).ToString() + "'" , "views desc" );[/align]
[align=left] if (ds.Tables[0].Rows.Count > 0)[/align]
[align=left] {[/align]
[align=left] RepHot.DataSource = ds;[/align]
[align=left] RepHot.DataBind();[/align]
[align=left] }[/align]
[align=left] }[/align]
[align=left]以上操作基本完成了aspnetpager分页是实现,又不懂的问题可以直接评论回复。[/align]
[align=left](代码用到了封装的DbHelperSQL.cs)[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: