我正在我的一个视图中实现无限滚动技术,它正在运行。我使用的脚本如下所示。
<script type="text/javascript">
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
GetArticlesFromNextSection(true);
}
});
var i = 2;
function GetArticlesFromNextSection(scrollPage) {
var pagenumber = i++;
$("#divLoading").show();
setTimeout(function () {
$.post('/Channel/MessagePagination', {
"pagenumber": pagenumber,
},
function (data) {
if (data == "") {
$("#divLoading").html("No More Posts");
}
$("#messagelist").append(data);
$("#divLoading").hide();
});
}, 1000);
i = i;
}
</script>
现在我需要在完全加载数据时显示不再有数据或类似内容的消息。 我给了if条件来检查
if (data == "") { $("#divLoading").html("No More Posts");}
但它不起作用。谁能告诉我会出现什么问题? 视图和控制器示例代码如下所示
查看:
@Html.AntiForgeryToken()
<div>
@Html.ValidationSummary(true)
<div id="messagelist">
@{Html.RenderPartial( "mypartial",list);}
</div>
</div>
<div id="divLoading" style="margin: 0px; padding: 0px; position: fixed; right: 0px; top: 0px; width: 100%; height: 100%; background-color: #666666; z-index: 30001; opacity: .8; filter: alpha(opacity=70);display:none">
<p style="position: absolute; top: 30%; left: 45%; color: White;">Loading, please wait...<img src="~/images/loading.png"></p>
</div>
控制器:
public ActionResult MessagePagination(int pagenumber)
{
var balObject = new BusinessLogic();
int pageSize = 3;
var MessageList = balObject.FetchMessages();
MessageList = MessageList.Skip((pagenumber - 1) * pageSize).Take(pageSize).ToList();
return PartialView("mypartial", MessageList);
}
答案 0 :(得分:1)
你可以这样检查:
if ($.trim(data)) {
$("#messagelist").append(data);
$("#divLoading").hide();
}
else
$("#divLoading").html("No More Posts");
或者你可以在修剪后使用length
属性,如果它大于0,那么其他数据就不会出现(如果你没有更多数据从服务器返回空字符串的话):
if ($.trim(data).length) {
$("#messagelist").append(data);
$("#divLoading").hide();
}
else
$("#divLoading").html("No More Posts");
答案 1 :(得分:0)
如果msglist计数为零,我将控制器更改为返回null。 我使用了一个警告框来显示消息,不再显示帖子。 现在它的工作。