GridView Kontrolü Üzerinde Kayitlari Sayfa Sayfa Göstermek

ASP.net te en çok kullandigimiz kontrollerden biriside GridView dir. Gridviewde göstermek istedigimiz kayit sayisi çok fazla oldugunda, sayfanin asagiya dogru çok uzamasini istemeyiz. Bu durumda gridview kontrolü üzerinde sayfalama kullaniriz. ASP.net le gelen Gridview kontrolü sayfalama islemlerini oldukça kolaylastirmaktadir. Bu makalemizde Gridview üzerinde verileri sayfalayarak nasil gösterecegimizi anlatmaya çalisacagim.

Ilk olarak kullanacagimiz veritabanini olusturalim. Bunun için Microsof’tun ücretsiz olarak sundugu AdventureWorksLT2008R2 isimli veritabaninda bulunan Customer isimli tablodaki kolonlardan bir kismini alip Musteri isimli bir tablo yaptim. Bu yüzden tablodaki veriler Ingilizce. Kullandigim tabloyu kendi veritabaninizda olusturabilmeniz için create ve insert scriptlerini asagida verdim.

Tabloyu olusturmak için asagidaki sorguyu çalistirin. Insert sorgusu çok uzun olacagi için sorguyu dosya olarak ekledim.

CREATE TABLE [dbo].[Musteri](

      [MusteriID] [int]   NOT NULL,

      [Ad] [varchar](50) NOT NULL,

      [Soyad] [varchar](50) NOT NULL,

      [SirketAdi] [varchar](128) NULL,

      [EPosta] [varchar](50) NULL,

      [Telefon] [varchar](50) NULL

)

 

Create ve insert sorgusuna ait scripti buradan indiririn.

Veritabanimizi olusturdugumuza göre simdi gelelim verileri gösterecegimiz web sayfasina. Yeni bir web sitesi olusturarak baslayalim. Bu kisimlari bildiginizi farz edip direk kodlamaya geçelim

Default.aspx sayfasina bir gridview ekleyip adini MusteriGridView yapalim.

<asp:GridView ID="MusteriGridView" runat="server">

</asp:GridView>

 

Daha sonra kod kismina gelip asagidaki kodlari ekleyelim.

protected void Page_Load(object sender, EventArgs e)

{

    if (!IsPostBack)

    {

        DatalariDoldur();

    }

}

 

private void DatalariDoldur()

{

    SqlConnection conn = new SqlConnection();

   

    conn.ConnectionString = "Data Source=.;Initial Catalog=MakaleDeneme;Integrated Security=True;";

    conn.Open();

    SqlDataAdapter da = new SqlDataAdapter("Select * from Musteri", conn);

    da.SelectCommand.ExecuteNonQuery();

    DataSet ds = new DataSet();

    da.Fill(ds);

    MusteriGridView.DataSource = ds;

    MusteriGridView.DataBind();

}

 

.
Yukaridaki kodlari ekleyip projeyi çalistirdiginizda veritabanina ekledigimiz 847 adet Müsteri kaydinin girdview’e basildigini ve sayfani asagi dogru uzadigini göreceksiniz. Simdi gelelim bu verileri sayfa sayfa göstermeye.

Ilk olarak GridViewin sayfalama özelligini aktif hale getirelim ve sayfa basina 20 kayit gelecek sekilde ayarlayalim. Bunlari yapmak için html kodunuzu asagidaki gibi degistirmeniz yeterlidir.

<asp:GridView AllowPaging="true" PageSize="20" ID="MusteriGridView" runat="server">

</asp:GridView>

 

Tek yaptimizi AllowPaging özelligini true yapmak ve pagesize degerini 20 ye ayarlamak. Projemizi çalistirdiginizda girdview içerisinde sadece 20 kayit göreceksiniz ayrica gridviewin altinda sayfa numaralari belirecek. Simdi bu sayfa numaralarindan 2 ye basarsaniz asagidaki hatayi alacaksiniz.

MusteriGridView’ GridView islenmemis olan PageIndexChanging olayini etkinlestirdi.

 

Bu hatanin nedeni GridViewing paging eventi esnasinda çalisacak olan kodlarini yazmamis olmamiz bunun için gridviewin html kodlarini asagidaki gibi degistirin yada gridviewi sag tiklayip özellikler ordan eventlara geçip  PageIndexChanging eventini çift tiklayin.

<asp:GridView AllowPaging="true" PageSize="20" ID="MusteriGridView"

    runat="server" onpageindexchanging="MusteriGridView_PageIndexChanging" >

</asp:GridView>

 

Kod kisminda da bu fonksiyonun içini dolduracagiz.

protected void MusteriGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)

{

    MusteriGridView.PageIndex = e.NewPageIndex;

    DatalariDoldur();

}

 

.
Artik projemizi çalistirdigimizda grid üzerinde 20 kayit görünecek ve her sayfaya geçtigimizde diger müsteri bilgilerine erisecegiz.

GridView Sayfalama

Proje kaynak kodlarini buradan indirebilirsiniz.

 

Konu ile ilgili sorularinizi forumdan takip edebilir ve soru sorabilirsiniz.

 

 

 

11 thoughts on “GridView Kontrolü Üzerinde Kayitlari Sayfa Sayfa Göstermek

  1. Eline, Yüregine, Bilgine saglik hocam… en büyük korkum .NET te sayfalama yaptirmakti onuda senden ögrendim çok sagolasin…  

  2. ayni sorun linqdatasource kullanildiginda nasil çözümlenebilir. her page in 1 satiri bozuk geliyor. tesekkürler

  3. Kardesim çok çok tesekkür ederim, büyük bir dertten kurtardin beni, Allah razi olsun 🙂

  4. eline saglik sabri allah sitenden google botlarini eksik etmesin 😉

    @seyyah zaten sqlin test veritabanidir adventureworks,numaralari vermesinde herhangi bir sakinca yok…

  5. elinize saglik sabri bey gayet aciklayici olmus yanliz müsterilerinizin isimlerini numaralari vermek dogrumu:D

Guests için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir