2012-04-24 5 views
-1

ASP.NETページには、基本的な<ul><li>という構造があります。今、私はこの<li>の動的レコードを取得しています。私の問題は、次のボタンをクリックしたときに最後のページを確認し、最後のページに達した場合に警告メッセージを表示することです。ナビゲーションとjQuery Ajax

私は警告を出したら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を? –

答えて

0

実際、次のコードブロックは実行されません。 current page以来

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

で最もtotalPagesすることができ、それは平等は次のように確認することができます:==

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