1:插入一个随机函数的小方法。
2: .net 3.5里面 新建类型的时候 直接赋值。
nm.Insert(new Model.News() { //为什么这里是 Model.News 呢?是因为我们在上面没有写 Using Model 层
Title=title,Content=content,CaId=caid
});
如何使用 aspnetpager呢? 有3个准备工作
1:http://www.webdiyer.com/Controls/AspNetPager/Downloads 下载
2:将 AspNetPager.dll 和 AspNetPager.xml 考入到项目的 bin 文件夹 并在Bin文件夹上引用AspNetPager。(这一步其实可以用不,执行下面的第三部,就会把第二步执行一次的,不过这个 xml 好像不会自动考进来,所以我们还是把第一步 执行比较好)
3:在VS2010 工具栏上面,右键新建项,然后找到刚才 bin文件的 AspNetPager.dll ,这样在工具栏就可以使用 AspNetPager了,将控件拖到你需要分页的地方,就可以了。
然后就可以在工具栏看到 AspNetPagers 控件了
下面开始如何分页的步骤
1:分页控件,我们上面已经做好了
2:在sql2005以及以上,运行分页的存储过程
-- ============================================= -- Author: 牛腩 -- Create date: 2009-07-22 12:41 -- Description: 分页,用到了ROW_NUMBER() -- ============================================= create PROCEDURE [dbo].[proc_FenYe] @tblName varchar(255), -- 表名 @strGetFields varchar(1000) = '*', -- 需要返回的列,默认* @strOrder varchar(255)='', -- 排序的字段名,必填 @strOrderType varchar(10)='ASC', -- 排序的方式,默认ASC @PageSize int = 10, -- 页尺寸,默认 @PageIndex int = 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)
//这里是在存储过程里面的调用方法,是可以使用多表查询的。
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''
3:我们去NewsDao 里面去执行这个存储过程。
小技巧,我们不用 #region 来注释
所以我们不用 #region注释 还是使用 ///<summary> 但是我们把注释的文字 写在 summary的后面。下面就是效果
回到正题,我们在NewsDao 里面执行 这个存储过程
同样,在BLL里面 也是要 多弄一个函数
最后在前台的页面,我们使用 GridView 调用如下