2012-10-01 29 views
1

如果從Controller中的JSON對象填充項目,我試圖爲列表創建一個上一個和下一個按鈕。jQuery使用JSON和.NET MVC跳過並執行函數3

我有一個跳過和變量,以便我可以做同樣的記錄集。我想一次分七次前進(下一次),並一次倒退7次(前一次)。

訂單被正確加載,但我沒有完全理解跳過想法,以及在沒有更多「頁面」呈現時更改CSS類。

 var skip = 0; 
    var take = 7; 

    function loadItems() { 
     $.ajax({ 
      url: '@Url.Action("GetAllItems")', 
      data: 
      { 
       skip: skip, 
       take: take 
      }, 
      type: "GET", 
      cache: false, 
      success: function (items) { 
       $.each(items, function (index, item) { 
        $('#ul-items').append('<li><a class="link">' + item.Information + '</a></li>'); 
       }); 
      } 
     }); 
    } 

    $(document).ready(function() { 
     $('#previous').live("click", function() { 
      //page number , # of records needed 
      skip(0); 
      take(-7); 

      if (i) {//execute if there are no previous selections available 
       $('#previous').removeClass('enabled').addClass('disabled'); 
      } 
     }); 

     $('#next').live("click", function() { 
      //page number , # of records needed 
      skip(1); 
      take(7); 

      if (i) {//execute if there are no previous selections available 
       $('#next').removeClass('enabled').addClass('disabled'); 
      } 
     }); 
    }); 

回答

0

您的代碼應該更喜歡這個,YPU不必更改取值,只跳過:

$('#previous').live("click", function() { 
      if (skip > 0) { 
       skip = skip - 1; 
      } else { 
       $('#previous').removeClass('enabled').addClass('disabled'); 
      } 
      loadItems(); 
     }); 

     $('#next').live("click", function() { 
      skip = skip + 1; 
      loadItems(); 
      $('#previous').addClass('enabled').removeClass('disabled'); 
     }); 
+0

也loadItems成功,你應該檢查,如果你收到最大項目(採取= 7所以7),如果沒有,你應該隱藏下一個按鈕。 – VinnyG

1

Skip允許您跳過列表中的多個項目。並且Take以及列表中的下一個項目數。

假設您有一個包含100個項目的PaginatedList,並且您一次需要10個項目。

最初你需要10 第二個鏈接將需要跳過10個元素,並採取下10個元素。

所以它會像paginatedList.Skip(i*10).Take(10)這樣的東西我會成爲你的頁碼。因此,如果我是0,0 * 10將是第0頁(實際上是第一頁,但用戶不知道這一點)。 Take 10將返回前10項。

+0

那麼,如何將這些代碼查找上一個和下一個按鈕;倒車7並取7? – thedigitalman

+0

你通常做C#代碼的工作。 假設您在鏈接6上,並且想要查看鏈接5,則將您的5發送給您的控制器。 paginatedList.Skip(4 * 10).Take(10)所以你跳過40個項目,並採取下一個10。這只是一個想法:) –