.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, stringsqlwhere,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, stringstrWhere)

{

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)

时间: 2024-10-01 22:17:50

.net中实现aspnetpager分页的相关文章

【转】AspNetPager分页控件用法

AspNetPager分页控件解决了分页中的很多问题,直接采用该控件进行分页处理,会将繁琐的分页工作变得简单化,下面是我如何使用AspNetPager控件进行分页处理的详细代码: 1.首先到www.webdiyer.com下载最新的AspNetPager.dll,直接在vs2005中添加引用即可. 2.在页面上注册控件,引入该控件,当然,需要在页面中使用一个数据载体,我这里使用的是repeater控件. <%@ Register Assembly="AspNetPager" Na

【Bootstrap3.0建站笔记三】AspNetPager分页,每一列都可排序

1.AspNetPager分页,实现每一列都可排序: (1).需要将默认排序字段放在HTML页面中. (2).排序字段放置为td节点的属性. 如图: 实现的效果图如: HTML代码: <div class="row"> <div class="col-lg-12 col-sm-12 col-xs-12 col-xxs-12"> <table class="table table-striped table-hover tabl

AspNetPager 分页的详细用法(ASP.NET)

1.[添加AspNetPager.dll文件] 2.[使用方法] public static DataTable GetRecord(SystemModel.Pager mt, ref int TotalPage, ref int TotalRecord) { string sortType = mt.SortType == 1 ? " asc" : " desc"; //查询总条数 string _strCountSQL = "select count(

ASP.NET中DataList数字分页代码

ASP.NET中DataList数字分页代码 转 荐 好长时间没发东西了, 之前一段时间一直在做别的东西, 最近java实验室要开搞系统哈哈, 重新学习.net 这个分页困扰了我这个菜鸟好久阿, 搞了好久终于找到这段代码, 还是数字分页, 试了成功了~还不会分页的朋友看到这个就偷笑吧~~ 代码转自http://hi.baidu.com/honfei css样式取自吴旗娃aspnetpager 效果: 共1页       首页 上一页  1 2 3 4 5 6 7 8 9 10 ....下一页 末

PagedDataSource数据绑定控件和AspNetPager分页控件结合使用列表分页

1.引用AspNetPager.dll. 2.放置Repeater数据绑定控件. <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> //绑定显示的列表代码 </ItemTemplate> </asp:Repeater> 3.在页面添加AspNetPager分页控件,会出现以下代码. <%@ Register Assembly="Asp

创建有输出参数的存储过程并在c#中实现DataGridView分页功能

不足之处,欢迎指正! 创建有输出参数的存储过程 if exists(select * from sysobjects where name='usp_getPage1') drop procedure usp_getPage1 go create procedure usp_getPage1--存储过程名称 @count int output,--输出参数 @countIndex int=1,--参数带默认值 @countPage int=5--参数带默认值 as --一个sql语句.ROW_N

在 asp.net mvc中的简单分页算法

//第一步:建立如下分页实体类:namespace MVCPager.Helpers { /// <summary> /// 简单分页算法类 /// </summary> public class Pager { public int RecordCount { get; set; } public int PageIndex { get; set; } public int PageSize { get; set; } public int PageCount { get { r

MySQL与Oracle中的基本分页

MySQL中的基本分页: select ename from emp where xxxxx order by sal  desc limit (pageno-1)*pageSize,pageSize; Oracle中的基本分页 select tt.* from ( select t.*,rownum as  linenum from (select  * from  tbl_role) t where rownum <#{0}*#{1} )tt where linenum  >(#{0}-1

C# Repeater、webdiyer:AspNetPager分页 AspNetPager分页样式

AspNetPager分页样式:1.网易风格 2.拍拍风格 3.迅雷风格 地址:http://www.webdiyer.com/aspnetpagerdemo/applystyles/default.aspx BootScript框架下分页: <div class="row"> <div class="col-lg-1 col-sm-4 col-xs-4 col-xxs-12"> </div> <div class=&quo