gpt4 book ai didi

c# - jQuery 无限滚动和 Gridview

转载 作者:IT王子 更新时间:2023-10-29 04:49:53 29 4
gpt4 key购买 nike

假设我在数据库中有 10,000 条记录,但我想通过 gridview 在页面中显示 100 条记录,我希望当用户向下滚动并到达页面中的最后一条记录时,100 条记录的其余部分将通过 jquery 加载到 gridview 中.这样,当用户向下滚动时,数据将加载。所以我心里有一些问题,比如。

1) 当我在页面加载时显示 100 条记录时,如何检测用户到达最后一条记录。

2) 如果我能检测到,那么我可以启动 JQuery ajax 调用以获取下一个 100 条记录并再次将新的 100 条记录附加到底部 gridview。那么我如何通过 jquery 分配数据或将数据附加到 gridview。

请详细讨论...示例代码会更有帮助。谢谢

最佳答案

我已经用 MVC 2 和 jQuery 这样做了:

Controller :

/// <summary>
/// GET: /Widget/Search/
/// Displays search results.
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public ActionResult Search(SearchType searchType, string s, [DefaultValue(1)]int page)
{
try
{
int batch = 20;
int fromRecord = 1;
int toRecord = batch;

if(page != 1)
{
toRecord = (batch * page);
fromRecord = (toRecord - (batch-1));

}

var widgets= _repos.Search(searchType, s, fromRecord, toRecord );

if (widgets.Count == 0)
{
InfoMsg("No widgets were found.");
}

if (Request.IsAjaxRequest())
{
if(widgets.Count > 0)
{
return View("SearchResultsLineItems", widgets);
}
else
{
return new ContentResult
{
ContentType = "text/html",
Content = "noresults",
ContentEncoding = System.Text.Encoding.UTF8
};
}

}

return View("SearchResults", widgets);
}
catch (Exception ex)
{
return HandleError(ex);
}
}

查看:

 <% if (Model.Count > 0) { %>  
<table id="tblSearchResults">
<tr>
<th></th>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
<th>Col4</th>
<th>Col5</th>
<th>Col6</th>
</tr>
<% Html.RenderPartial("SearchResultsLineItems", Model); %>
</table>
<div id="loadingSearchResults" style="text-align:center;height:24px;"></div>
<div id="actionModal" class="modal"></div>
<% } %>

脚本:

function initAutoPaging() {
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
loadMore()
}
});
}


var current = 1;
function loadMore() {
if (current > -1) {
if (!_isShowingDetails)
{
if (!$('#loadingSearchResults').html()) {
current++;
$('#loadingSearchResults').show();
$('#loadingSearchResults').html("<img src='/content/images/loading.gif' />");
$.ajax({
async: true,
url: document.URL + "?&page=" + current,
contentType: "application/x-www-form-urlencoded",
dataType: "text",
success: function(data) {
if (data != 'noresults') {
$('#tblSearchResults tr:last').after(data);
$('#loadingSearchResults').hide();
$('#loadingSearchResults').html('');
highlightSearch();
} else {
current = -1;
$('#loadingSearchResults').show();
$('#loadingSearchResults').html("<h3><i>-- No more results -- </i></h3>");
}
}
});
}
}

}
}

关于c# - jQuery 无限滚动和 Gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5117934/

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