隐藏加载更多记录按钮ASP.net MVC Ajax Javascript

时间:2015-12-14 10:50:51

标签: javascript jquery asp.net ajax asp.net-mvc

我正在尝试在我的asp.net mvc5 Web应用程序中通过ajax加载更多记录。但我是javascript的新手,当当前页面等于总页数时,我无法弄清楚如何隐藏加载更多按钮。

javascript代码:

function LoadMoreUR(total_pages) {
    loadRecords(total_pages);
}
var page = 0;
var _inCallback = false;
function loadRecords(total_pages) {
    if (page > -1 && !_inCallback) {
        _inCallback = true;
        page++;
        $('div#loading').html('<p><img src="/Content/loading.gif"></p>');
        $.get("/UserReviews/@ViewData["DeviceID"]/" + page, function (data) {
            if (data != '') {
                $("#UserReviewsList").append(data);
            }
            else {
                page = -1;
            }

            _inCallback = false;
            $('div#loading').empty();
        });
    }
}

我的观点

    <div id="UserReviewsList">
        @Html.Partial("_user_reviews")
    </div>
    <div id="loadingbtn">
        <button class="btn btn-primary" id="LoadMUR" onclick="LoadMoreUR(@ViewData["TotalPages"])" >Load More</button>
        <div id="loading"></div>
    </div>

如果设备有3条记录,我每次点击都会加载一条记录。 我想在loadingbtn等于page时隐藏total_pages div。

请帮我解决这个问题。感谢

我的解决方案(如果我做错了,请告诉我)

function LoadMoreUR(totalpages) {
    loadProducts(totalpages);
}
var page = 0;
var _inCallback = false;
function loadProducts(totalpages) {
    if((page + 2) == totalpages && !_inCallback)
    {
        $('div#loading1').empty();
    }
    if (page > -1 && !_inCallback) {
        _inCallback = true;
        page++;
        $('div#loading').html('<p><img src="/Content/loading.gif"></p>');
        $.get("/UserReviews/Index/@ViewData["DeviceID"]/" + page, function (data) {
            if (data != '') {
                $("#UserReviewsList").append(data);
            }
            else {
                page = -1;
            }

            _inCallback = false;
            $('div#loading').empty();
        });
    }
}

1 个答案:

答案 0 :(得分:2)

在Ajax响应中,您必须计算整个记录并与显示的记录进行比较。如果您在表中绑定,则可以获得行数。

var rowCount = $('#myTable tr').length;

在ajax响应中返回每次检查条件的数量以隐藏按钮。

If(rowCount == TotalRecordCount )
{
 $("#loadingbtn").hide()
}