ASP.NET GridView Custom Paging and Sorting
Evet Arkadaşlar Bu Makalemizede GridView İçin Custom Paging Ve Sorting Uygulaması Yapacağız,
Hali Hazırda GridView’in Kendi Paging Yapısı Olmasına Rağmen Neden Custom Paging Yapıyoruz Diye,
Aklımıza Gelebilir,Elbette Performans İçin Kendi Yapacağımız Custom Paging Sayesinde Sadece İstediğimiz,
Sayfanın Kayıtlarını Görüntüleyeceğiz,Eğer GridViewin Paging Yapısını Kullanıyor Olsaydık,Her İstediğimiz,
Sayfa İçin Komple Tabloyu Çağıracaktık Tablomuzda Bir Milyon Tane Kayıdımızın Olduğunu Düşünelim,Her Defasında,
Bir Milton Tane Kayıdı Çağırmak Performansı Al Aşağı Edecektir.Bu Sebebden Dolayı Kendi Custom Paging’imizi,
Oluşturuyoruz Bunun Yanında El Altışken Birde Custom Sorting Yapalım Tam Olsun.
İlk Önce SQL SERVER İle Northwind Veritabanı İçerisinde İki Tane Store Procedure Oluşturacağız.
Birisi Sayfanın Total Count’u İçin, Diğeri İse Paging ve Sorting İçin.
CREATE PROCEDURE [dbo].[GetNumberOfProducts]
AS
SELECT COUNT(*) FROM Products
GO
CREATE PROCEDURE [dbo].[GridSorting]
@StartIndex int,
@MaxRowIndex int
AS
BEGIN
WITH SILO AS
(
SELECT ROW_NUMBER() OVER(ORDER BY ProductName ASC) AS Row,P.ProductName,S.CompanyName,C.CategoryName,P.UnitPrice,P.UnitsInStock,
P.Discontinued,P.SupplierID,P.CategoryID FROM Products AS P
INNER JOIN Suppliers AS S ON S.SupplierID = P.SupplierID
INNER JOIN Categories AS C ON C.CategoryID = P.CategoryID
)
SELECT P.ProductName,S.CompanyName,C.CategoryName,P.UnitPrice,P.UnitsInStock,P.Discontinued FROM SILO AS P
INNER JOIN Suppliers AS S ON S.SupplierID = P.SupplierID
INNER JOIN Categories AS C ON C.CategoryID = P.CategoryID
WHERE Row BETWEEN @StartIndex AND @StartIndex + @MaxRowIndex
END
GO
Evet Store Procedurelerimiz Hazır Olduğuna Göre Artık Visual Studio İle Yeni Bir ASP.NET Projesi Oluşturabiliriz.
İlk Önce Class’ımızdan Başlayalım Classımızın Adı Paging,Classımızı Aşağıdaki Gibi Oluşturuyoruz.
public int ProductCount()
{
SqlConnection cn = new SqlConnection(“Server=.;Database=Northwind;Trusted_Connection=true”);
SqlCommand com = new SqlCommand(“GetNumberOfProducts”, cn);
com.CommandType = CommandType.StoredProcedure;
cn.Open();
int etkilenen = Convert.ToInt32(com.ExecuteScalar());
cn.Close();
return etkilenen;
}
public DataTable ProductSorting(int StartIndex, int MaxRowIndex)
{
SqlConnection cn = new SqlConnection(“Server=.;Database=Northwind;Trusted_Connection=true”);
SqlCommand com = new SqlCommand(“GridSorting”, cn);
com.CommandType = CommandType.StoredProcedure;
SqlParameter param1 = new SqlParameter(“@StartIndex”, SqlDbType.Int);
param1.Direction = ParameterDirection.Input;
param1.Value = StartIndex;
com.Parameters.Add(param1);
SqlParameter param2 = new SqlParameter(“@MaxRowIndex”, SqlDbType.Int);
param2.Direction = ParameterDirection.Input;
param2.Value = MaxRowIndex;
com.Parameters.Add(param2);
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
cn.Open();
da.Fill(dt);
cn.Close();
return dt;
}
Evet Classımızda Tamam Olduğuna Göre Artık Tasarım Kısmına Geçebiliriz Default.aspx Sayfamızda Aşağıdaki Gibi Bir Düzenleme,
Yapıyoruz
<asp:GridView
ID=”GridView1″ runat=”server”
AutoGenerateColumns=”false” EnableViewState=”false”
BackColor=”Black” ForeColor=”White” PageSize=”8″
HeaderStyle-BackColor=”Blue” HeaderStyle-ForeColor=”White”
AllowPaging=”true” DataSourceID=”ObjectDataSource1″>
<Columns>
<asp:BoundField DataField=”ProductName” HeaderText=”ÜRÜN ADI” />
<asp:BoundField DataField=”CompanyName” HeaderText=”TOPTANCI ADI” />
<asp:BoundField DataField=”CategoryName” HeaderText=”KATEGORİ ADI” />
<asp:BoundField DataField=”UnitPrice” HeaderText=”ÜRÜN FİYATI” DataFormatString=”{0:C}” />
<asp:BoundField DataField=”UnitsInStock” HeaderText=”ÜRÜN STOK MİKTARI” DataFormatString=”{0:} ADET” />
<asp:BoundField DataField=”Discontinued” HeaderText=”ÜRÜN İNDİRİMİ” />
</Columns>
</asp:GridView>
<asp:ObjectDataSource
ID=”ObjectDataSource1″ runat=”server” EnablePaging=”true”
TypeName=”Paging” SelectMethod=”ProductSorting” SelectCountMethod=”ProductCount”
StartRowIndexParameterName=”StartIndex” MaximumRowsParameterName=”MaxRowIndex”>
</asp:ObjectDataSource>
ObjectDataSource’mızdaki StartRowIndexParameterName ve MaximumRowsParameterName Oluşturduğumuz Paging Classımızdaki,
ProductSorting Methodundan Gelmektedir. TypeName Classımızın Adı, SelectMethod ProductSorting Methodumuzdan Ve Son Olarak,
SelectCountMethod’da ProductCount Methodundan Gelmektedir.
Artık Projemizi Çalıştırıp Sönucunu Gözlemleyebiliriz.

Geldik Makalemizin Sonuna Bir Sonraki Makalede Görüşmek Üzere Sağlıcakla Kalın.
Giriş
Kategoriler
Arşivler
Takvim
Son YazIlar
- Mevlit Kandiliniz Mübarek Olsun
- Dünyanın en karanlık kahramanı yeniden sürüyor : HAYALET SÜRÜCÜ 2 İNTİKAM ATEŞİ
- Ya Ben İstanbul’u Alacağım, Ya İstanbul Beni ! : FETİH 1453
- Lost’un yaratıcısı J.J. Abrams’tan yeni dizi :ALCATRAZ
- Gurbetçi Rocky’nin komik hikayesi: BERLİN KAPLANI
- Uluslararası Çok Satan Üçlemeden :EJDERHA DÖVMELİ KIZ
- Hoşgeldin 2012
- Geri sayım başlasın ! : YILBAŞI GECESİ
- Plansız.Desteksiz.Seçimsiz :GÖREVİMİZ TEHLİKE 4
- Akıllı ve karizmatik dedektif Sherlock Holmes, en büyük düşmanı Profesör Moriarty’e karşı : Sherlock Holmes: Gölge Oyunları
Son Yorumlar
- Lost’un yaratıcısı J.J. Abrams’tan yeni dizi :ALCATRAZ için Güray
- Aşkın klişelerine karşı alaycı bir tavır takınmak,sizi gerçek aşka karşı kör mü yapar?: ARKADAŞTAN ÖTE için genceaydin
- Windows 7 Kurulum Sorunu (Çözümü) için Güray
- Windows 7 Kurulum Sorunu (Çözümü) için expert_-_man
- Müzik dinlemenin en hızlı ve en kolay yolu myFizy.com için Güray
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için Umut Sinan Şirin
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için gurultu12
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için Umut Sinan Şirin
- 64 bit İşletim Sisteminde 32 bitlik dll ve ocx Dosyalarını .Net’le(Dotnet) import Etme Sorununun Çözümü için gurultu12
- İhanet Noktası (Dan Brown) için pesimist
En Çok Okunanlar
- Eset Nod32 Antivirüs ekrn.exe Sorunu (Çözümü) - 20.896 kere okundu.
- Windows 7 Kurulum Sorunu (Çözümü) - 15.531 kere okundu.
- Skyfire 4.3.2.1_3001 Hatası (Symbian ve Windows Mobile Çözümü) - 13.085 kere okundu.
- Nokia 5800 Temaları - 11.868 kere okundu.
- Golden Retriever - 11.347 kere okundu.
- Kilyos - 9.628 kere okundu.
- Şemsiye Tarihçesi - 8.583 kere okundu.
- “o” an fotoğrafları - 7.273 kere okundu.
- Prag - 6.752 kere okundu.
- Nokia 5800 Programlar 1 - 5.873 kere okundu.
- IPhone 2 Çıktı ve Satışta.. - 5.169 kere okundu.
- Barış Manço - 4.935 kere okundu.
- Sigarayı İlk Kim Keşfetti? - 4.925 kere okundu.
- BİSİKLET - 4.590 kere okundu.
- Windows XP’nin Ölüm Tarihi Uzatıldı - 4.327 kere okundu.
Etiket Bulutu
WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.


Bu Yazı 1.462 kere okundu.