gpt4 book ai didi

jquery - mvc jquery分页搜索结果只有1个查询

转载 作者:行者123 更新时间:2023-12-01 08:28:59 28 4
gpt4 key购买 nike

我有一个搜索页面,我正在将其作为 ASP.NET + MVC + jquery 站点的一部分来实现。搜索查询对作为结果集一部分返回的每个结果进行评分。即,更接近的比赛得分更高。

由于结果集可能会发生变化,并且对比赛进行评分的算法有些密集,因此我只想加载一次结果并找到一种方法来单击结果页面。

我想我会创建一个包含所有搜索结果的页面(每个结果都有自己的),并通过单击与 jquery 代码关联的按钮来显示/隐藏一个子集。我认为在开始尝试让它工作之前我可以看到如何做到这一点(我对 jquery 还很陌生),但我想我首先看看是否有人有更好的想法。

预先感谢您的任何建议。

编辑:弗朗西斯科的建议正是我所需要的。我通过一些小的更改来实现它,并创建了一些 jquery 按钮来导航到第一页/上一页/下一页/最后一页以及“查看 N 中的 n-m 结果”标签。感谢您的所有建议。

最佳答案

我认为你的想法足够好。

只需将每个页面中所需的所有元素放入不同的 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

编辑:

要动态执行此操作,请创建与结果列表关联的强类型 View 。 View 的标题应该类似于:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Result>>" %>

以“结果”作为你的类(class):

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>

最后,在你的 Controller 中:

public ActionResult ShowResults()
{
List<Result> results = getResultsOrdererdByScoreFunction();
return View(results);
}

关于jquery - mvc jquery分页搜索结果只有1个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1173663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com