2012-04-24 5 views
-1

ASP.NET 페이지에 기본 <ul><li> 구조가 있습니다. 이제 나는이 <li>에 동적 레코드를 얻고 있는데, 내 문제는 사용자가 다음 버튼을 클릭 할 때 마지막 페이지가 있는지 확인하고 마지막 페이지에 도달하면 경고 메시지를 표시하는 것입니다.jQuery Ajax를 사용한 내비게이션

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(); 
} 

왜 총 페이지 수를 계산하지 않습니까?

+0

currentPage == totalPages : current page 이후

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

그것은 평등과 같이 확인 될 수에서 가장 totalPages 할 수 있는가? –

답변

0

실제로 다음 코드 블록은 실행되지 않습니다.

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