Arama butonu
Bu konudaki kullanıcılar: 1 misafir
1
Cevap
554
Tıklama
0
Öne Çıkarma
Kayıt arama listeleme sayfasına sayfalama işlemi nasıl uygularım?
K
6 yıl
Çavuş
Konu Sahibi

Arkadaşlar uğraştığım projede veritabanından gelen verileri kullanıcının istediği şartlara göre listeliyorum fakat kayıtlar tek sayfada çıkıyo ben sayfalara bölmek istiyorum fakat PagedList olayını bir türlü ekleyemedim projeye.
Controller:
 
Model1 db = new Model1();

public ActionResult Sirkuler(string yil, string tipler, string kelime)
{
ViewBag.yil = db.sirkuler.Where(x => x.tarih.Contains(yil)).Where(x => x.tip.ToString().Contains(tipler)).Where(x => x.icerik.Contains(kelime)).OrderBy(x=>x.tarih).ToList();
ViewBag.tip = db.Tipler.ToList();


return View();
}

Model

{
[Table("sirkuler")]
public partial class sirkuler
{
public int id { get; set; }

[Required]
[StringLength(20)]
public string numara { get; set; }

public int tip { get; set; }

[Required]
[StringLength(20)]
public string tarih { get; set; }

[Required]
[StringLength(100)]
public string sirku { get; set; }

[Column(TypeName = "ntext")]
[Required]
public string icerik { get; set; }

[Column(TypeName = "ntext")]
public string resimyol { get; set; }

public virtual Tipler Tipler { get; set; }
}
}

View

@{
/**/

ViewBag.Title = "Sirkule";
}
@using boraden1
@model sirkuler

<div class="container bodyContainer">

<div class="col-xs-12 pgContent">
<div class="row">
<div class="col-sm-6">
<div class="">
<p><strong>Arama</strong></p>
<select name="tipler" id="tipler" class="form-control">
<option value="">Tüm Sirküler</option>
@foreach (Tipler tip in ViewBag.tip)
{
<option value="@tip.id">@tip.tipadi</option>
}

</select>
<input name="kelime" value="" type="text" id="Kelime" class="form-control" placeholder="Aranan Kelime">
<select name="yil" id="yil" class="form-control">
<option selected="selected" value="">Tüm Yıllar</option>
<option value="2018">2018</option>
<option value="2017">2017</option>
<option value="2016">2016</option>
<option value="2015">2015</option>
<option value="2014">2014</option>
<option value="2013">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
<option value="2006">2006</option>
<option value="2005">2005</option>
<option value="2004">2004</option>
<option value="2003">2003</option>
<option value="2002">2002</option>
<option value="2001">2001</option>
</select>
<button type="button" onclick="sirkulergetir(); return false;" class="btn btn-primary" data-loading-text="<i class='fa fa-spinner fa-spin '></i> Aranıyor" id="btnAra">Ara</button>
</div>
</div>
</div>
<hr />

<div class="col-xs-12">


<h2>
<span id="Baslik">Sirküler</span>
</h2>
<table class="table table-hover" cellspacing="0" border="0" id="Sirkulerler" style="border-width:0px;border-collapse:collapse;">
<thead>

<tr>
<th scope="col" style="width:160px;">Sirküler Tipi</th>
<th scope="col" style="width:90px;">Numara</th>
<th scope="col">Sirküler</th>
<th scope="col">Tarih</th>


</tr>
</thead>
<tbody>


@foreach (sirkuler yil in ViewBag.yil)
{
<tr>

<td>
<span id="ctl00_ctl00_plBody_plBody_DGSirkulerler_ctl03_LblSirkulerTip">@yil.Tipler.tipadi </span>
</td>
<td>
<span id="ctl00_ctl00_plBody_plBody_DGSirkulerler_ctl03_LblNumara" class="txtDarkBlue">@yil.numara</span>
</td>
<td>
<a id="ctl00_ctl00_plBody_plBody_DGSirkulerler_ctl03_HPBaslik" href="/Home/goruntule?id=@yil.id">@yil.sirku</a>
</td>
<td>
<span id="ctl00_ctl00_plBody_plBody_DGSirkulerler_ctl03_LblTarih">(@yil.tarih)</span>
</td>

</tr>




}

</tbody>
</table>
<div class="row">
<div class="col-md-8 text-center">
<div class="pagedList pagination-centered">
@Html.PagedListPager(Model, Sayfa =>Url.Action("Sirkule", new {tipler,yil,kelime Sayfa}))
</div>
</div>
</div>

</div>
</div>
</div>

Arkadaşlar sayfalam işlemini nasıl yapabilirim acaba?



G
6 yıl
Teğmen

Kullandığınız dili bilmiyorum o yüzden sayfalama mantığını yazayım.

1-) Toplam kayıt sayısını buluyorsunuz (total).
2-) Toplam kayıt sayısını bir sayfada gösterilecek kayıt sayısına (limit) bölüp bir üst tam sayıya yuvarlıyorsunuz - toplam sayfa sayısı oluyor bu da-
3-) Kullanıcının istediği sayfaya (page) göre sql sorgsuna limit uyguluyorsunuz. Başlangıç satırını (limit * page) - limit şeklinde buluyorsunuz.


Diyelim ki kullanıcı 3. sayfaya bastı, bir sayfada 30 kayıt göstermek istiyorsunuz

total = // toplam satır sayısı
limit = 30
pages = ceil(total/limit) // ceil() phpde sonucu bir üst sayıya yuvarlayan fonksiyon. siz kullandığınız dile göre düzenlersiniz.
start = (page * limit) - limit

sql = "SELECT * FROM table ORDER BY column ASC LIMIT start, limit"

pages değişkenini kullanarak for döngüsüyle içerik altına sayfa numaralarını yazdırırsınız.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.