asp.net mvc3分页问题,求解答
最终要实现的分页是这样的
这是我的分页帮助类
/// <summary>
/// 分页帮助类
/// </summary>
/// <typeparam name="T"></typeparam>
public class PagingHelper<T>
{
//分页数据源
public IEnumerable<T> DataSource { get; private set; }
//每页显示记录的数量
public int PageSize { get; private set; }
//当前页数
public int PageIndex { get; set; }
//分页总页数
public int PageCount { get; private set; }
//是否有前一页
public bool HasPrev { get { return PageIndex > 1; } }
//是否有下一页
public bool HasNext { get { return PageIndex < PageCount; } }
//构造函数
public PagingHelper(int pageSize, IEnumerable<T> dataSource)
{
this.PageSize = pageSize > 1 ? pageSize : 1;
this.DataSource = dataSource;
PageCount = (int)Math.Ceiling(dataSource.Count() / (double)pageSize);
}
//获取当前页数据
public IEnumerable<T> GetPagingData()
{
return DataSource.Skip((PageIndex - 1) * PageSize).Take(PageSize);
}
}
这是我的控制器方法
/// <summary>
/// 选择游戏区服
/// </summary>
/// <returns></returns>
public ActionResult SelectGameArea(int pageIndex=1)
{
IndexProvider areaProvider = new IndexSqlProvider();
DataTable dt = areaProvider.GameInfo_SelectGame();
List<GameInfoModels> areaList = new List<GameInfoModels>();
ViewBag.pageCount = dt.Rows.Count%6;
foreach (DataRow dr in dt.Rows)
{
GameInfoModels gameArea = new GameInfoModels();
gameArea.GameAreaName = dr["GameAreaName"].ToString();
areaList.Add(gameArea);
}
PagingHelper<GameInfoModels> AreaPaging = new PagingHelper<GameInfoModels>(6, areaList);
AreaPaging.PageIndex = pageIndex; //指定当前页
return View(AreaPaging); //返回分页数据到视图
}
这个是页面部分
@model _5_Ars.SywMobile.Common.PagingHelper<_1_Ars.SywMobile.Entity.Index.GameInfoModels>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>选择区服</title>
<link href="@Url.Content("~/Content/themes/common.css")" type="text/css" rel="stylesheet" />
<link href="@Url.Content("~/Content/themes/gemearea.css")" rel="stylesheet" type="text/css">
</head>
<body>
<div id="header">
<span class="header_l"><a href="#">返回</a></span> <span class="header_r"><a href="#">
</a></span>
</div>
<div id="content">
<div class="gameArea">
<div class="header">
<span>选择区服</span>
</div>
<div class="gameArea_content">
<ul>
@foreach (var item in Model.GetPagingData())
{
<li><a href="">@item.GameAreaName</a></li>
}
</ul>
</div>
</div>
<!--选择区服-->
<form class="pageForm">
<div class="pageBtn">
<div class="pageBtn_left">
@if (Model.HasPrev)
{
<a href="@Url.Action("SelectGameArea", "IBuy", new { pageIndex = Model.PageIndex - 1 })">上一页</a>
}
else
{
<em style="color: Gray">上一页</em>
}
</div>
<div class="pageBtn_middle">
<select>
<option value="1">第一页</option>
<option value="2">第二页</option>
<option value="3">第三页</option>
<option value="4">第四页</option>
<option value="5">第五页</option>
<option value="6">第六页</option>
<option value="7">第七页</option>
<option value="8">第八页</option>
</select>
</div>
<div class="pageBtn_right">
@if (Model.HasNext)
{
<input type="button" />
<a href="@Url.Action("SelectGameArea", "IBuy", new { pageIndex = Model.PageIndex + 1 })">下一页</a>
}
else
{
<em style="color: Gray">下一页</em>
}
</div>
</div>
</form>
</div>
目前上一页和下一页都实现了,就是中间的下拉列表没有实现,下拉列表中是“第一页,第二页,第三页...”
求解答,怎么实现???急需要。。。
分页 asp.net mvc 数据
[解决办法]
因为你不会javascript