Çarşamba, Ocak 16, 2008

ASP.NET'te Datalist ile Sayfalama

ASP.NET'te Datalist ile Sayfalama

Dataliste normalde oluşturduğumuz tabloyu direk bağlarız. Burada ise sayfalama yapmak için "PAGEDATASOURCE" nesnemizi kullanacağız. İsterseniz direk örneğimize geçelim. Oradan daha iyi anlaşılır.

protected void Page_Load(object sender, EventArgs e)
{
DatalistDoldur();
}

private void DatalistDoldur()
{
DataTable dt = new DataTable();
dt = bla bla // buraya tablomuzu koyuyoruz

PagedDataSource page = new PagedDataSource(); // nesnemizi oluşturuyoruz
page.AllowPaging = true; // sayfalama özelliğini true yapıyoruz
page.PageSize = 5; // sayfada buluncak eleman sayısı
page.CurrentPageIndex = simdikisayfa; // bulundupu sayfa için bunu aşağıda anlatacağım
page.DataSource = dt.DefaultView();

Datalist1.DataSource = page; // datalistimize oluşturduğumuz pagedatasource nesnemizi bağlıyoruz
Datalist1.DataBind();

if (page.IsFirstPage == true) // burada sayfaya koyduğumuz iki adet linkbuttonun (ileri ve geri olmak şartıyla) görünme ve görünmeme durumlarını ayarlıyoruz
lnkbtnGeri.Enabled = false;
else
lnkbtnGeri.Enabled = true;

if (page.IsLastPage == true)
lnkbtnileri.Enabled = false;
else
lnkbtnileri.Enabled = true;
}
public int simdikisayfa // burada ise hangi sayfada olduğumuz ayarlamak için bir özellik oluşturuyoruz.
{
get
{
try
{
return int.Parse(this.ViewState["sayfa"].ToString());
}
catch (Exception ex)
{
return 0;
}
}
set
{
ViewState["sayfa"] = value;
}
}

protected void lnkbtnileri_Click(object sender, EventArgs e) // bunlarda linkbutonların kodları
{
simdikisayfa = simdikisayfa + 1;
DatalistDoldur();
}
protected void lnkbtnGeri_Click(object sender, EventArgs e)
{
simdikisayfa = simdikisayfa - 1;
DatalistDoldur();
}

şimdilik sayfalamayı iki butonla yapıyoruz. biraz daha geliştirebilirsem 1 2 3 gibi sayfalama ile yapmaya çalışacağım. Yapabilirsem onuda siteye koyarım.

Bol kodlu günler...

6 yorum:

Adsız dedi ki...

dt = bla bla // buraya tablomuzu koyuyoruz

bu kısımda bla bla diye yazdığınız yere bir örnek gösterseniz daha ii olacak.tam orayı anlayamadım

Adsız dedi ki...

teşekkürler, arıyordum böyle bir kodu, gerçekten işime yaradı.

dt = bla bla // buraya tablomuzu koyuyoruz

bu kod yazılmasada olur.

Melih Keskin dedi ki...

Emeğine sağlık uzun zamandır arıyordum çok teşekkür ederim

Adsız dedi ki...

hocam çok teşekkürler..

gerçekten çok sade ve güzel anlatmışsınız..

Adsız dedi ki...

sonuç mükemmel anlatım için teşekkür ederim.Dediğin gibi yaptım.zaten datalistimi doldurmuştum fakat paging de takılı kalmıştım datagetir metodumu yazdıklarına göre düzenledim ve harika oldu tatmin edici.123 şeklinde yaparsan da ayrı şık olur.

Adsız dedi ki...

Paylaşımlarınız için teşekkür ederiz. Herhangi bir sorunda dell laptop tamircisi olarak hizmet vermekten onur duyarız.