ASP.NET Core otomatik sayfa oluşturma

Caulfield

Kilopat
Katılım
19 Ocak 2018
Mesajlar
859
Çözümler
3
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar sitede mesela kullanıcı ürünler sayfasına tıkladığı zaman karşımıza ürünler gelecek ve bir sayfada misal toplam 10 tane ürün yayınlayacağım. Yeniden eskiye doğru sıralanacak bunlar. Eğer ürün sayısı 10'u geçerse otomatikman 2. bir sayfa oluşturulacak ve eklenme tarihi eski olan ürünler 2. sayfada sıralanmaya başlayacak Listeleme işleminde bir sorunum yok lakin dediğim gibi otomatik sayfa oluşmasını istiyorum. Nasıl yapabilirim bunu?
 
Son düzenleyen: Moderatör:
Sayfalama yapmak istiyorsun anladım kadarıyla. Toplam ürün sayısını bulup kaç tane ürün göstermek istiyorsan bir sayfada ona bölüyorsun. Örneğin 200 ürünün var ve her sayfada 20 ürün gözükecekse toplam sayfan 10 olur. Daha sonra urlde parametre belirlemen lazım. Bunun nasıl olacağı tamamen sana bağlı. Ürünleri listelediğin sql kodunda limit kullanman gerekiyor.
 
Sayfalama yapmak istiyorsun anladım kadarıyla. Toplam ürün sayısını bulup kaç tane ürün göstermek istiyorsan bir sayfada ona bölüyorsun. Örneğin 200 ürünün var ve her sayfada 20 ürün gözükecekse toplam sayfan 10 olur. Daha sonra urlde parametre belirlemen lazım. Bunun nasıl olacağı tamamen sana bağlı. Ürünleri listelediğin sql kodunda limit kullanman gerekiyor.
Getirdiğim liste metodundan sonra .OrderByDescending(x=> x.AddedDate).Take(10) yazıyorum mesela. Ama bu sadece son eklenen 10 ürünü getiriyor. Benim istediğim dinamik olarak 2. Bir sayfa oluşsun ve ürünün yenileri eklendikçe eskiler otomatiktan bu sayfaya düşsün.
 
Getirdiğim liste metodundan sonra .OrderByDescending(x=> x.AddedDate).Take(10) yazıyorum mesela. Ama bu sadece son eklenen 10 ürünü getiriyor. Benim istediğim dinamik olarak 2. Bir sayfa oluşsun ve ürünün yenileri eklendikçe eskiler otomatiktan bu sayfaya düşsün.

OrderByDescending(x=> x.AddedDate).Skip(20).Take(10) şeklinde kullanman gerekiyor. Şeklinde kullanman gerekiyor. Bulunduğu sayfanın sayısı ile Skip değerini çarpmalısın.
 
QueryString ile kaçıncı sayfada olduğunu taşıyacaksın. Misal adres ?Page=2 olacak. Bu sayede 2.sayfayı istediğini anlayacaksın ve Page in default 1 olduğunu varsayalım 2 olarak gönderince OrderByDescending(x=> x.AddedDate).Skip(Page-1*10).Take(10) gibi yazacaksın. Mantığı bu kısaca. E-ticaret sitelerinin filtreleme kısımlarını inceleyebilirsin bunun için epey fikir verecektir.
 
Epey uğraşmıştım bu durumlarla. Skip() ve Take() işinizi görecektir. Öncelikle toplam ürün sayınızı bulursanız işler daha kolay olur. Ona göre sayfalama yaparsınız. Bunun yanında fikir vermesi adına Facebook gibi sayda aşağı doğru indiğinde veri tabanından yeni ürün getirebilirsiniz. Ajax ile yapmıştım. Sonrasında ise AngularJs ile yapmıştım.
 
Epey uğraşmıştım bu durumlarla. Skip() ve Take() işinizi görecektir. Öncelikle toplam ürün sayınızı bulursanız işler daha kolay olur. Ona göre sayfalama yaparsınız. Bunun yanında fikir vermesi adına Facebook gibi sayda aşağı doğru indiğinde veri tabanından yeni ürün getirebilirsiniz. Ajax ile yapmıştım. Sonrasında ise AngularJs ile yapmıştım.
O bahsettiğiniz kaydırarak getirme işlemi için bi kaynak yazar mısınız?
 
O bahsettiğiniz kaydırarak getirme işlemi için bi kaynak yazar mısınız?
Mesela

<button type="button" class="btn btn-outline-primary col-md-12" ng-click="GetProject()">Getir</button>

$scope.GetCastProject = function GetProject() {
page = page + 5;
$http({
method: 'POST',
url: '/buraya adresi yacaksın/',
dataType: 'Json',
data: { Page: page }
}).then(function (response) {
$scope.newdata = response.data;
for (var i = 0; i < $scope.newdata.length; i++) {
$scope.castProject.push($scope.newdata)
}
});

AngularJs ile bu şekilde yapmıştım.
Tuşa basıldığında yeni 5 tane daha alta ekliyordu.
Getirdiğini mecvur array ye push ediyordu. Bu şekilde aşağıya doğru inmeye devam ediyordu.
Bunu Jquery ile de yapabilirsin.


function GetNewItem(){
$.ajax({
method:'get',
url:'Buraya url yazacaksın',
success: function(response){
**var olan arrayine push edecesin gelen veriyi. ya da direk div içine append edersin.
}
});
}
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı