首页 新闻 会员 周边

Mvcpager翻页数据源不是linq 是list<T>问题?

0
悬赏园豆:10 [已解决问题] 解决于 2014-04-11 11:01

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);
}

jason2013的主页 jason2013 | 小虾三级 | 园豆:1998
提问于:2014-04-11 10:32
< >
分享
最佳答案
0

PagedList<UserList> list_m_P=new PagedList<UserList>(list_m, pageIndex, pageSize, count);

收获园豆:8
单恋 | 小虾三级 |园豆:678 | 2014-04-11 10:58

非常ok

jason2013 | 园豆:1998 (小虾三级) | 2014-04-11 11:00

PagedList<UserList> list_m_P = new PagedList<UserList>(list_m, id ?? 1, 2, 100); 我代码这写,一页显示2条,但还是全部显示出来,翻页不起作用,能帮我看一下是什么原因吗?

jason2013 | 园豆:1998 (小虾三级) | 2014-04-11 12:05

@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又是把所有数据都查出来了。你换成上面那种吧

单恋 | 园豆:678 (小虾三级) | 2014-04-11 13:07
其他回答(2)
0

使用ToList()转换成List

收获园豆:1
Charles Zhang | 园豆:38 (初学一级) | 2014-04-11 10:39

兄弟,好象没这么简单

支持(0) 反对(0) jason2013 | 园豆:1998 (小虾三级) | 2014-04-11 10:56

@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     }
支持(0) 反对(0) Charles Zhang | 园豆:38 (初学一级) | 2014-04-11 11:01
0

list_m = (List<Model.UserList>)Model.ModelConvertHelper<Model.UserList>.ConvertToModel(datatable);

上面这句话不是您想要的结果吗?
PagedList<UserList> list_m_P =list_m;//这样会报错吗?还是说这里不是为了填他。

收获园豆:1
seaconch | 园豆:4823 (老鸟四级) | 2014-04-11 10:54

PagedList<UserList> list_m_P =list_m ,这里会报错

支持(0) 反对(0) jason2013 | 园豆:1998 (小虾三级) | 2014-04-11 10:55

@0591zpw: 什么错

支持(0) 反对(0) seaconch | 园豆:4823 (老鸟四级) | 2014-04-11 10:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册