-1

<ul> <li>在 ASP.NET 页面中有一个基本结构。现在我正在获取动态记录<li>,我的问题是,当用户单击下一步按钮时,它应该检查最后一页,并相应地显示一条警报消息,如果已到达最后一页。

我在 jQuery 中获取了 totalPages,当我放置警报时,我收到了消息TotalPage,但是当我在一个条件下编写相同的代码时if,它不会评估。下面是我的 JavaScript 函数。

var totalPages = -1;
function MostPopularSlideShows(currentPage, pager, mostpopular_data) {
    $.ajax({
        type: "POST",
        url: "SlideShowAdmin/Ajax/SlideShow.aspx/MostPopularSlideList",
        dataType: "json",
        contentType: "application/json",
        data: "{\"CurrentPage\":'" + currentPage + "'}",
        success: function (data) {
            var result = data.d;
            var totalPages = result[0].TotalPages;
            //alert(totalPages); This works fine.
            if (currentPage > totalPages) //Here it never evaluates
            {
                alert("You have reached last page");
                currentPage -= 1;
            }
            else {
                $("#" + pager).html(currentPage + "/" + result[0].TotalPages);
                $("#" + mostpopular_data).html("");
                $.each(result, function (index, item) {
                    $("#" + mostpopular_data).append("<li><img src=\"images/most_popr_pic1.jpg\" width=\"153\" height=\"90\" alt=\"\" class=\"floatleft\" /><h6>" + item.SlideShowName + "</h6><h3><a href=\"#\">" + item.Title + "</a></h3><h4>" + item.Description + "</h4></li>");
                })
            }
        },
        error: function (data) {
            alert("Cannot Get Most Popular SlideShow, Server Threw below error:\n" + data.responseText);
        }
    });
}

下面是我的 Ajax 函数。

[WebMethod]
public static SlideList[] MostPopularSlideList(int CurrentPage)
{
    List<SlideList> list = new List<SlideList>();
    DataSet d = SqlHelper.ExecuteAdapterForDataSet("user_MostPopularSlideShow", new SqlParameter[] { new SqlParameter("@PortalID", PortalId), new SqlParameter("@CurrentPage", CurrentPage) }, CommandType.StoredProcedure);
    foreach (DataRow r in d.Tables[0].Rows)
    {
        SlideList _slide = new SlideList();
        _slide.Id = Convert.ToInt32(r["Id"]);
        _slide.SlideShowId = Convert.ToInt32(r["SlideShowId"]);
        _slide.Description = r["SlideDescription"].ToString();
        _slide.CreatedDate = (r["CreatedDate"]).ToString();
        _slide.Thumbnail = r["Thumbnail"].ToString();
        _slide.Total = Convert.ToInt32(d.Tables[1].Rows[0]["TotalRows"]);
        _slide.TotalPages = Convert.ToInt32(d.Tables[1].Rows[0]["TotalPages"]);
        _slide.Title = r["SlideTitle"].ToString();
        _slide.SlideShowName = r["SlideShowName"].ToString();
        list.Add(_slide);
    }
    return list.ToArray();
}

为什么不评估 totalPages?

4

1 回答 1

0

实际上,我认为下面的代码块永远不会执行。

if (currentPage > totalPages) //Here it never evaluates
{
    alert("You have reached last page"); 
    currentPage -= 1;
}

由于current pagecan 最多totalPages,因此可以进行相等性检查,例如:

if (currentPage == totalPages) //Here it never evaluates
{
    alert("You have reached last page"); 
    currentPage -= 1;
}
于 2012-04-24T19:24:42.933 回答