2012-04-26 4 views
1

Je suis en train de boucler les données renvoyées après l'appel ajax est le succès et en ajoutant le résultat à pagination plugin.JQuery boucle après appel ajax

Voici mon code:

var imagesPerPage = 2, pageNumber = 1; 
    var pagesContainer = $('#pagesContainer'), 
    imagesInPage = 0, 
    divPage = $("#p1"); 

    $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GetImages", 
      data:{}, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (response) { 

      //Here goes my for loop      

      } 
     }); 

Ceci est ma boucle où Je dois obtenir les images de webmethod et les boucler et ajouter à la pagination.

for (i = 0; i < response.d.length; i++) { 
      if (imagesInPage >= imagesPerPage) { 
      imagesInPage = 1; 
      pageNumber += 1; 
      divPage = $('<div/>', { id: "p" + pageNumber }).addClass('pagedemo').hide().appendTo(pagesContainer); 
      } else { 
      imagesInPage += 1; 
      } 
} 

Voici ma configuration par défaut Pagination:

$("#pagination").paginate({ 
       count: pageNumber, 
       start: 1, 
       display: Math.min(7, pageNumber), 
       border: true, 
       border_color: '#fff', 
       text_color: '#fff', 
       background_color: 'black', 
       border_hover_color: '#ccc', 
       text_hover_color: '#000', 
       background_hover_color: '#fff', 
       images: false, 
       mouse: 'press', 
       onChange: function (page) { 
       $('#paginationdemo ._current').removeClass('_current').hide(); 
       $('#p' + page).addClass('_current').show(); 
     } 
    }); //pagination 

Maintenant, mon problème est lorsque je tente d'obtenir la réponse d'une image, il ne me montre l'image, ainsi que le pagination.If il est plus d'un alors il commence à me montrer la pagination et l'image.

Screenshot:

enter image description here

Alors quelqu'un peut-il me dire où je vais mal? Où voulez-vous obtenir la réponse pour une image?

+0

Juste un conseil: utilisez 'i ++' au lieu de 'i + = 1' –

+0

pourriez-vous poster l'objet json quand ajax renvoie une seule image? peut-être que vous n'avez pas d'objet 'd' à l'intérieur dans ce cas précis – fcalderan

+0

@ DotNETNinja-Where? J'ai utilisé i ++. – coder

Répondre

0

Si vous essayez de le faire dans votre état s'il ne fonctionnera pas pour une seule réponse parce que

imagesInPage> = imagesPerPage

false comme évalue imagesPerPage = 2 et imagesInPage = 0;

également si votre type de réponse est JSON et cela ne résout pas votre problème essayez d'utiliser

$.each(response,function(index,data){ 
    //check each image here 
     // data.id gives you the id of each json object in the response 
}) 
+0

@ Drako-j'ai essayé la même mais sans succès. – coder

0

Ceci est votre problème récemment j'ai rencontré pagination avec le même problème. Pour résoudre ce problème, vous aurez besoin d'une condition. Vérifiez la longueur de la réponse. si c'est 1 alors ajoutez quelques valeurs par défaut et cela fonctionnera.