none
asp.net mvc分页 RRS feed

答案

  • linq 分 linq to sql  、linq to  entity 所以 当使用 mvc +ado.net时 可以使用 Linq to entity 照样可以使用啊 你需要源代码吗

    public static void PagedList<T>(this HtmlHelper helper,
                int listSize,
                IEnumerable<T> data,
                ShowItemHandler<T> callback,
                ShowPageHandler pageCallback,
                ShowEmptyHandler emptyCallback)
            {
                if (data == null || data.Count() == 0)
                {
                    if (emptyCallback != null) emptyCallback();
                    return;
                }

                string p1 = helper.ViewContext.HttpContext.Request.QueryString["p"];
                int p = 0;
                if (!string.IsNullOrWhiteSpace(p1))
                {
                    if (!int.TryParse(p1, out p))
                        p = 0;
                    if (p < 0) p = 0;
                }
                int c = data.Count();
                if (p * listSize >= c) p = 0;

                if (callback != null)
                    foreach (T item in data.Skip(p * listSize).Take(listSize))
                        callback(item);

                if (pageCallback != null)
                {
                    if ((p + 1) * listSize < c)
                        pageCallback(Resources.Strings.下一页, p + 1);
                    if (p > 0)
                        pageCallback(Resources.Strings.上一页, p - 1);
                }
            }
        }

    2010年8月4日 8:51

全部回复

  • 为什么不能用linq的写法?


    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    2010年8月3日 5:03
  • SQL 2005 以后可以使用between关键字来做分页。

    1 SELECT *
    2  FROM (
    3 select *,ROW_NUMBER() Over(order by ssp_soi_id) as rowNum
    4 from ssp_soi )
    5  as myTable
    6  where rowNum between 21 and 50

    2010年8月3日 5:03
  • 楼上的 能详细点吗 做好多给点源代码 公司里架构就是这样用ADO.NET我也没办法
    2010年8月3日 5:32
  • linq 分 linq to sql  、linq to  entity 所以 当使用 mvc +ado.net时 可以使用 Linq to entity 照样可以使用啊 你需要源代码吗

    public static void PagedList<T>(this HtmlHelper helper,
                int listSize,
                IEnumerable<T> data,
                ShowItemHandler<T> callback,
                ShowPageHandler pageCallback,
                ShowEmptyHandler emptyCallback)
            {
                if (data == null || data.Count() == 0)
                {
                    if (emptyCallback != null) emptyCallback();
                    return;
                }

                string p1 = helper.ViewContext.HttpContext.Request.QueryString["p"];
                int p = 0;
                if (!string.IsNullOrWhiteSpace(p1))
                {
                    if (!int.TryParse(p1, out p))
                        p = 0;
                    if (p < 0) p = 0;
                }
                int c = data.Count();
                if (p * listSize >= c) p = 0;

                if (callback != null)
                    foreach (T item in data.Skip(p * listSize).Take(listSize))
                        callback(item);

                if (pageCallback != null)
                {
                    if ((p + 1) * listSize < c)
                        pageCallback(Resources.Strings.下一页, p + 1);
                    if (p > 0)
                        pageCallback(Resources.Strings.上一页, p - 1);
                }
            }
        }

    2010年8月4日 8:51