我想在我的項目中創建無限滾動。接下來不要跳過以前的LINQ c#
Scene-
我有大約100張照片來呈現我的視圖頁面上。對於每一個滾動到底要求我通過jQuery-
<script type="text/javascript">
$(function() {
var value = 0;
function IncreasedValue() {
value += 10;
return value;
}
$(window).scroll(function() {
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 10) {
$.ajax({
url: '/Home/FunHome/?valuetake=' + IncreasedValue() + '&valueskip=' + "0",
type: 'GET',
datatype: 'HTML',
success: function (data) {
$('#funhome-partial').html(data);
}
});
}
});
});
</script>
它總是增加發送LINQ取值由+10
當滾動至底部。
第一次加載我的操作檢索5條記錄並跳過無(正常工作)。只要takevalue
增加10,我就將這個值解析爲LINQ Take()
。
public ActionResult FunHome(int? valueskip, int? valuetake) {
if (valuetake == null && valueskip == null) {
int take = 5;
int skip = 0;
var cardlist = (from u in db.CardTables
select new CardModel {
cardDate = u.CardDate,
cardFileName = u.CardFileName,
cardFilePath = u.CardFilePath,
cardHashCode = u.CardHashCode,
cardID = u.CardID,
cardTitle = u.CardTitle
}).Take(take).Skip(skip);
return View(cardlist);
}
else {
int skip = 0;
int take = Convert.ToInt32(valuetake);
var cardlist = (from u in db.CardTables
select new CardModel {
cardDate = u.CardDate,
cardFileName = u.CardFileName,
cardFilePath = u.CardFilePath,
cardHashCode = u.CardHashCode,
cardID = u.CardID,
cardTitle = u.CardTitle
}).Take(take).Skip(skip);
return PartialView("FunHome", cardlist);
}
}
目前正在發生的事情是,當AJAX查詢請求的10條記錄,該操作檢索那些未來10條記錄,並採取所有要求記錄再次呈現的所有頁面。
這會減慢我的應用程序,因爲將每個滾動的所有記錄都渲染爲底部事件。
注意 -
我不想跳過以前的記錄是明顯的所有圖片應該顯示。
有沒有什麼方法可以加載下一個記錄,我可以通過LINQ
來實現?