代码改变世界

简单分页的实现-硬编码

2011-03-28 17:48  撞破南墙  阅读(539)  评论(0编辑  收藏  举报

 

 

最终效果

image

1控制器中代码


public ActionResult List(int id) {                                                                                                                      if (id < 1  ) {
                id 
= 1;
            }

            
//##3.1.3分页示例--后台代码
            STOA.RichModel.STOADBContainer stoadbc = new RichModel.STOADBContainer();
            IQueryable
<STOA.RichModel.Role> roles =
                stoadbc.Role;
            
int count = roles.Count();
            ViewData[
"recordCount"= count;
            roles 
= roles.OrderBy(_ => _.RoleID)
                 .Skip((id 
- 1* Base.Global.PageSize)//跳过的页数
                 .Take(Base.Global.PageSize);
            ViewData[
"msg"= roles;//
            ViewData["currentPageIndex"= id;
            ViewData[
"pageSize"= Base.Global.PageSize;
            ViewData[
"pageCount"= count / Base.Global.PageSize;//这里有问题暂时不理
            return View(roles);
        }

 

2 辅助类中的代码 

namespace System.Web.Mvc {
    
public static class PagerHelper {

        
/// <summary>
        
/// 3.1.3分页示例--辅助类代码
        
/// </summary>
        
/// <param name="currentPageIndex"></param>
        
/// <param name="pageSize"></param>
        
/// <param name="recordCount"></param>
        
/// <param name="pageCount"></param>
        
/// <param name="modelname"></param>
        
/// <returns></returns>
        public static string GetPager2(int currentPageIndex, int pageSize, int recordCount, int pageCount, string modelname)//(pagermode mode,string  PageModel)
        {
            StringBuilder pagerQuery 
= new StringBuilder();
            
if (recordCount == 0) {
                
return "没有符合条件的信息";
            }
            
#region =============公共分页和执行操作====================
            pagerQuery.Append(
" 共有<font style=\"color:blue\">" + recordCount + "</font>项");// <p>// <font style="color:#F00">
            pagerQuery.Append(" 共有 " + pageCount + "");
            pagerQuery.Append(
" 当前在第" + currentPageIndex + "");
            
if (currentPageIndex != 1)
                 pagerQuery.Append(
"<span id='First' ><a href='" + modelname + "" + 1 + "'>首页</span></a> ");
            
if ((currentPageIndex - 1> 0)//上页为0
                pagerQuery.Append("<span id='Pre' ><a href='" + modelname + "" + (currentPageIndex - 1+ "'>上一页</span></a>  ");
            
if (currentPageIndex < pageCount)//下页 满出了
                pagerQuery.Append("<span id='Next' ><a href='" + modelname + "" + (currentPageIndex + 1+ "'>下一页</span></a>  ");
            
if (currentPageIndex < pageCount)
                pagerQuery.Append(
"<span id='Last' ><a href='" + modelname + "" + pageCount + "'>末页</span></a>  ");
            pagerQuery.Append(
"   页次 <font style=\"color:red\">" + currentPageIndex + "</font>/" + pageCount + "页  " + pageSize + "项/页  ");
            
if (pageCount != 0) {
                pagerQuery.Append(
                    
" 转到<select id=\"PageIndex\"  onchange=\"location.href = this.options[this.selectedIndex].value;\">");
                pagerQuery.Append(
"<option>页面跳转</option>");
                
for (int i = 1; i <= pageCount; i++) { pagerQuery.Append("<option value=\"" + modelname + i + "\">第" + i + "页</option>"); }
                pagerQuery.Append(
"</select>");
            }
            
#endregion
            
return pagerQuery.ToString();

}} 

3 页面中的代码

 
 <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<IEnumerable<STOA.RichModel.Role>>" %>

<!DOCTYPE html>
<html>
<head runat="server">
    
<title>list</title>
</head>
<body>
    
<p>
        
<%: Html.ActionLink("Create New""Create"%>
    
</p>
    
<%  IEnumerable<STOA.RichModel.Role> roles = ViewData["msg"as IEnumerable<STOA.RichModel.Role>;%>
    
<table>
        
<tr>
            
<th>
            
</th>
            
<th>
                Name
            
</th>
            
<th>
                Description
            
</th>
            
<th>
                CreateTime
            
</th>
            
<th>
                State
            
</th>
        
</tr>
        
<% foreach (var item in roles) { %>
        
<tr>
            
<td>
                
<%--  <%: Html.ActionLink("Edit""Edit"new { id=item.RoleID }) %>--%>
                
<href="/Security/Role/Edit/<%=item.RoleID %>">编辑角色</a> <href="/Security/Permission/Edit/<%=item.RoleID %>">
                    编辑权限组
</a> |
                
<%: Html.ActionLink("Delete""Delete"new { id=item.RoleID }) %>
            
</td>
            
<td>
                
<%: item.Name %>
            
</td>
            
<td>
                
<%: item.Description %>
            
</td>
            
<td>
                
<%String.Format("{0:g}", item.CreateTime) %>
            
</td>
            
<td>
                
<%: item.State %>
            
</td>
        
</tr>
        
<% }  /* //##3.1.3分页示例--前台代码
               
* (int currentPageIndex, int pageSize, int recordCount, int pageCount, string AJaxQuest,
    
string PageModel) */%>
    
</table>
   
    
<%=( PagerHelper.GetPager2( 
 (
int)ViewData["currentPageIndex"],(int)  ViewData["pageSize"],
                          (
int)ViewData["recordCount"], (int)ViewData["pageCount"], "/security/role/list/"))
 
    
%>
  
</body>
</html>
 
 
 
 
 
 
        }