我认为你的想法足够好。
只需将每个页面中所需的所有元素放入不同的 div 中。然后给div一个易于识别的class或id属性,如:
<div id="page1" class="divpage">
page 1 html here
</div>
<div id="page2" class="divpage">
page 2 html here
</div>
等
jQuery 代码如下所示:
$("#page1").show();
$(".divpage").hide(); //this hides all other divs
编辑:
要动态地执行此操作,请创建一个与结果列表关联的强类型视图。视图的标题应该是这样的:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Result>>" %>
“结果”是你的班级:
public class Result
{
int score {get;set;}
string data {get;set;}
}
那么在你看来,你这样说:
<%int resultsPerPage = 10;
int currentResults = 0;
int numPage=0;
foreach(var item in Model)
{
if (currentResults==0) Response.Write("<div id=\"page"+numPage+"\" class=\"divpage\">");
%>
<%=item.score.ToString()%>
<%=item.data%>
<%currentResults++;
if (currentResults>resultsPerPage)
{
numPage++;
currentResults=0;
Response.Write("</div>");
}
}%>
<%if (currentResults!=0) Response.Write("</div>");%>
然后是你的按钮:
<%for (int i=0;i<numPage;i++)
{
%>
<a href="" onclick="showPage('<%=i%>');return false;">Page <%=i%></a>
<%}%>
<script type="text/javascript">
function showPage(num)
{
$("#page"+num).show();
$(".divpage").hide();
}
</script>
最后,在您的控制器中:
public ActionResult ShowResults()
{
List<Result> results = getResultsOrdererdByScoreFunction();
return View(results);
}