2010-08-31 89 views
0

你好我的代码,我给拿出来看分页:寻呼与asp.net的MVC C#

<div style="float: right;"> 
     <%= Html.RouteLink("<<", new { page = 1 }, new { title = "first page" })%> 
     <% if (this.Model.HasPreviousPage) 
      {%> 

     <%= Html.RouteLink("<", new { page = (Model.PageIndex - 1) }, new { title = "previous page"})%> 
     <%} %> 

     <% 
      for (int i = 1; i <= this.Model.PageIndex + 2; i++) 
      { if(i <= this.Model.TotalPages){ 
       %> 

     <%= Html.ActionLink(Convert.ToString(i), "Overview", new { page = i }, new { title = i + " page"})%> 
     <% }}%> 

     <% if (this.Model.HasNextPage) 
      {%> 

     <%= Html.RouteLink(">", new { page = (Model.PageIndex + 1) }, new { title = "next page"})%> 
     <%} %> 
     <%= Html.RouteLink(">>", new { page = Model.TotalPages }, new { title = "last page" })%> 
    </div> 

它看起来像这样:

<< 1 2 3 > >> 

我想说明永远只是一个两页在选定页面之前和之后。 如果Iam在第4页上,我会看到之前的所有3页。

<< < 1 2 3 **4** > >> 

我该怎么做,请帮助我..我现在有一点存货在我的脑海里,不知道如何操纵这个。

我的模型有以下寻呼数据:

/// <summary> 
     /// Gets the boolean value of previous page 
     /// </summary> 
     public bool HasPreviousPage 
     { 
      get 
      { 
       return (PageIndex > 1); 
      } 
     } 

     /// <summary> 
     /// Gets the boolean value of next page 
     /// </summary> 
     public bool HasNextPage 
     { 
      get 
      { 
       return (PageIndex + 1 <= TotalPages); 
      } 
     } 

     /// <summary> 
     /// gets total pages of overview.aspx 
     /// </summary> 
     public int TotalPages 
     { 
      get 
      { 
       return _totalPages; 
      } 
      set 
      { 
       _totalPages = value; 
      } 
     } 

     /// <summary> 
     /// gets total count 
     /// </summary> 
     public int TotalCount 
     { 
      get 
      { 
       return _totalCount; 
      } 
      set 
      { 
       _totalCount = value; 
      } 
     } 

     /// <summary> 
     /// gets actual page index 
     /// </summary> 
     public int PageIndex 
     { 
      get 
      { 
       return _pageIndex; 
      } 
      set 
      { 
       _pageIndex = value; 
      } 
     } 

     /// <summary> 
     /// gets page size 
     /// </summary> 
     public int PageSize 
     { 
      get 
      { 
       return _pageSize; 
      } 
      set 
      { 
       _pageSize = value; 
      } 
     } 




PageSize = 5; 
       PageIndex = page; 
       TotalCount = Threads.Count; 
       TotalPages = TotalCount/PageSize; 

       int pageResult = 0; 
       for (int counter = 1; pageResult < this.TotalCount; counter++) 
       { 
        pageResult = counter * this.PageSize; 
        TotalPages = counter; 
       } 

       FirstThreads = new List<Thread>(); 
       FirstThreads.AddRange(Threads.Skip<Thread>((PageIndex - 1) * PageSize).Take<Thread>(PageSize)); 

回答

1

那么首先,你的视图是相当复杂的。

为什么不使用HTML扩展方法来简化UI和分页?

有很多例子,我个人喜欢this之一。