public ActionResult Index()
{
OleDbConnection conn = new OleDbConnection(ConfigurationManager.ConnectionStrings["connstr"].ToString());
conn.Open();
DataTable datatable = new DataTable();
OleDbCommand comm = new OleDbCommand("select * from UserList",conn);
OleDbDataAdapter dar = new OleDbDataAdapter(comm);
dar.Fill(datatable);
conn.Close();
conn.Dispose();
///////////////////////////
List<Model.UserList> list_m = new List<UserList>();
list_m = (List<Model.UserList>)Model.ModelConvertHelper<Model.UserList>.ConvertToModel(datatable);
PagedList<UserList> list_m_P =这个地方不知道怎么写,因为数据源是list<T>,不是linq出来的
return View(list_m_P);
}
PagedList<UserList> list_m_P=new PagedList<UserList>(list_m, pageIndex, pageSize, count);
非常ok
PagedList<UserList> list_m_P = new PagedList<UserList>(list_m, id ?? 1, 2, 100); 我代码这写,一页显示2条,但还是全部显示出来,翻页不起作用,能帮我看一下是什么原因吗?
@0591zpw: PagedList有几个重载函数。看你用的哪一个啦。
1 public PagedList(IEnumerable<T> allItems, int pageIndex, int pageSize); 2 public PagedList(IQueryable<T> allItems, int pageIndex, int pageSize); 3 public PagedList(IEnumerable<T> currentPageItems, int pageIndex, int pageSize, int totalItemCount); 4 public PagedList(IQueryable<T> currentPageItems, int pageIndex, int pageSize, int totalItemCount);
allItems,就是把所有数据查询出来。currentPageItems是指当前页数据。可能你用的方法是currentPageItems这种。而你后面list_m又是把所有数据都查出来了。你换成上面那种吧
使用ToList()转换成List
兄弟,好象没这么简单
@0591zpw: 明明很简单的东西被你搞的好复杂,MVC我刚学,但是我写的完全没你这么复杂,看你正在问MVC的问题,把我的代码给你参考一下,数据访问需要自己实现了。
1 /// <summary> 2 /// 定义一个包含分页的文章信息列表模型。 3 /// </summary> 4 /// <typeparam name="T">文章信息模型。</typeparam> 5 public class ArticleListModel<T> : List<T> 6 { 7 /// <summary> 8 /// 初始化 <see cref="ArticleListModel"/> 类的新实例。 9 /// </summary> 10 public ArticleListModel() 11 { 12 //PageIndex = 1; 13 //PageSize = 10; 14 //TotalRecords = totalRecords; 15 //TotalPages = (int)Math.Ceiling(TotalRecords / (double)PageSize); 16 ////base.AddRange(itemList.Skip(pageIndex * pageSize).Take(PageSize)); 17 //base.AddRange(itemList); 18 } 19 20 /// <summary> 21 /// 初始化 <see cref="ArticleListModel"/> 类的新实例。 22 /// </summary> 23 /// <param name="itemList">执行分页之后当前页的对象集合。</param> 24 /// <param name="pageIndex">分页索引。</param> 25 /// <param name="pageSize">分页大小。</param> 26 /// <param name="totalRecords">记录总数。</param> 27 public ArticleListModel(IList<T> itemList, int pageIndex, int pageSize, int totalRecords) 28 { 29 PageIndex = pageIndex; 30 PageSize = pageSize; 31 TotalRecords = totalRecords; 32 TotalPages = (int)Math.Ceiling(TotalRecords / (double)PageSize); 33 //base.AddRange(itemList.Skip(pageIndex * pageSize).Take(PageSize)); 34 base.AddRange(itemList); 35 } 36 37 /// <summary> 38 /// 分页索引。 39 /// </summary> 40 public int PageIndex { get; private set; } 41 42 /// <summary> 43 /// 分页大小。 44 /// </summary> 45 public int PageSize { get; private set; } 46 47 /// <summary> 48 /// 分页总数。 49 /// </summary> 50 public int TotalPages { get; private set; } 51 52 /// <summary> 53 /// 记录总数。 54 /// </summary> 55 public int TotalRecords { get; private set; } 56 57 /// <summary> 58 /// 是否有上一页。 59 /// </summary> 60 public bool HasPreviousPage 61 { 62 get { return (PageIndex > 0); } 63 } 64 65 /// <summary> 66 /// 是否有下一页。 67 /// </summary> 68 public bool HasNextPage 69 { 70 get { return (PageIndex + 1 < TotalPages); } 71 } 72 73 }
list_m = (List<Model.UserList>)Model.ModelConvertHelper<Model.UserList>.ConvertToModel(datatable);
上面这句话不是您想要的结果吗?
PagedList<UserList> list_m_P =list_m;//这样会报错吗?还是说这里不是为了填他。
PagedList<UserList> list_m_P =list_m ,这里会报错
@0591zpw: 什么错