资源描述:
《no_2 .net mvc4之带搜索条件的无刷分页》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、看完初步,相信对MVC的结构和开发模式有一个初步的了解现在我们对刚才的流程进行一些改造。。先拿店铺做例子,一次性取出过多的数据,对访问速度和效率相当不友好,所以我们要进行分页操作。同样的,我们先在Model中定义一个分页的店铺实体,依然存放到大实体中publicPagedListlist{get;set;}//定义分页的店铺列表再把ListStore这个自定义的实体实现(使用自定义的实体好处在于只查询或更改部分字段,在数据处理效率上有明显提高,如果数据量大了,一个select*和一个selectID的效率是天差地别的)//声明店铺列表的部分参数实体。publicclass
2、ListStore{[KeyType(KeyTypes.Identity,"u_store")]publicintID{get;set;}//店铺IDpublicintuserID{get;set;}//店铺所属者的用户IDpublicStringstoreName{get;set;}//店铺名publicStringownerName{get;set;}//店主名publicStringregionName{get;set;}//地区名publicStringstoreLogo{get;set;}//店铺LogopublicDateTime?add_time{get;set;}//开店时间p
3、ublicstringzhuying{get;set;}//主营产品publicint?goodsNum{get;set;}//店铺产品总数publicbyte?praiseRate{get;set;}//店铺好评率}然后在接口中定义分页方法Listlist(intPageSize,intPageIndex,boolIsReCount,refintnum,stringstoreName="");在服务层实现分页://店铺列表的分页publicListlist(intPageSize,intPageIndex,boolIsReCount,refintn
4、um,stringstoreName=""){StringBuildersql=newStringBuilder();sql.Append("state=1");//默认状态为1的便是店铺开启状态if(storeName!=""){//定义一个分页的筛选条件,比如搜索店铺名sql.Append(string.Format("andstoreNamelike'{0}%'",storeName));}//调用存储过程//参数有8个//1.表名//2.表主键//3.查询哪些字段(需要和model中定义的字段一样,不可多不可少)//4.where条件//5.页大小//6.当前第几页//7.是否返回总条
5、数默认为true//8.排序SqlParameter[]parameters=S_PageRecord("u_store","ID","ID,userID,storeName,ownerName,regionName,storeLogo,add_time,zhuying,goodsNum,praiseRate",sql.ToString(),PageSize,PageIndex,IsReCount,"IDASC");DataSetds=base.RunProcedure("S_PageRecord",parameters,"ds");object_id=parameters[8].Value;
6、if(_id!=DBNull.Value)num=int.Parse(_id.ToString());//总条数ListlistStore=base.ConvertToList(ds.Tables[0]);returnlistStore;}到了这一步。我们就可以回到控制器,对Index方法做一些修改publicActionResultIndex(intpageIndex=1,intid2=1,stringid3="",stringstoreName=""){intnum=0;//初始化总条数intPageSize=10;//定义每页显示10条//调用
7、分页方法,传入分页所需的4个参数和1个条件(或者更多)PagedListlist=serviceProc.list(PageSize,pageIndex,true,refnum,storeName).AsQueryable().ToPagedList(pageIndex,PageSize);//处理分页展示参数varmodel=newPagedList(