【问题标题】:Hide Load More Records Button ASP.net MVC Ajax Javascript隐藏加载更多记录按钮 ASP.net MVC Ajax Javascript
【发布时间】:2015-12-14 21:06:18
【问题描述】:

我正在尝试在我的 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 条记录,并且每次点击我都会加载一条记录。 当page 等于total_pages 时,我想隐藏loadingbtn 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();
        });
    }
}

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,我已经解决了,并用答案更新了我的问题。
    猜你喜欢
    • 2019-05-21
    • 2011-12-28
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多