2014-05-12 13 views
0

我有一個數組,其中包含一些數據記錄(來自我的後端,我正在取回這些數據)。使用jQuery Knockout.Js JavaScript進行高級分頁:「查看更多數據」

我正在使用此數組綁定網格。這是通過knockout.Js實現的。

我的陣列天線的最終結合到電網:_results(commonData);

說,例如:

function BindData() { 
// Go to Backend . get the data and push it to _results. 

} 

這裏commonData是含有從我的後端數據的數組。 而_results是一個可觀察數組。

這裏是我的標記的結構:

<tbody data-bind="foreach: results"> 
<tr> 
<td data-bind="text: Emp ID"></td> 
<td data-bind="text: Emp Status"></td> 
<td data-bind="text: Emp Dept"></td> 
<td data-bind="text: Emp Code"></td> 
<td data-bind="text: Emp Address"></td> 
<td data-bind="text: Emp Manager"></td> 
<td data-bind="text: Emp Reporting Manager"></td> 
</tr> 
</tbody> 

可正常工作非常多。

我有一個行計數變量。

var _rowCount = 5; 

現在:我只想一次顯示5條記錄(行)。 如果有超過5條記錄來自後端,用戶應該點擊「查看更多」,我想調用My BindData()方法。 我應該每次從服務器獲取數據。但我不應該重新綁定現有的數據。

如果總共有10條記錄,我只會綁定5.點擊查看更多應該得到接下來的五條記錄並將其添加到。前五個應該保持原樣。

有關如何實現這一點的任何想法? 建議,歡迎舉例。

非常感謝!!!!!

回答

0

您使用的是observableArray,所以你基本上寫了自己的答案:

function BindData() { 
    // Go to Backend . get the data and push it to _results. 

} 

只是去解決它多一點對你:

function BindData() { 

    var onSuccess = function(data){ 
     for(var i=0; i<data.length);i++){ 
      //just push each object onto the observableArray. 
      that.results.push(data[i]); 


      // you might need to map some stuff here to observable, maybe with the 
      // mapping plugin, but basically the same way you got your first 5? 
     } 
    } 

    $.post('get-next-5-url', 'data', onSuccess); 
} 
+0

感謝您的答覆。基本上,我在頁面加載時綁定了五條記錄。當用戶點擊一個鏈接「加載更多數據」時,我需要保留這五個,並再次綁定其他五個。完全我現在會顯示10條記錄。這是我想要的。 – user2598808

+0

而這正是實現的目標,一旦POST成功返回,您將5個新項目推送到可觀察數組。 [只是一個例子](http://jsfiddle.net/955pG/1/)或者我誤解了一些東西? –

+0

謝謝你:)這有助於 – user2598808