1
Tem
2009

ASP.NET GridView Custom Paging and Sorting

Author    Category Bilgisayar, Genel     Tags , , , ,     Okunma Sayısı Bu Yazı 1.462 kere okundu.

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.

gridviewpaging
Geldik Makalemizin Sonuna Bir Sonraki Makalede Görüşmek Üzere Sağlıcakla Kalın.

Blog Widget by LinkWithin

Yorum Yapın

Yazıya yorum yapmak için lütfen Giriş yapınız.

Giriş

Facebook

Kategoriler

Arşivler

Takvim

Şubat 2012
Pts Sal Çar Per Cum Cts Paz
« Oca    
 12345
6789101112
13141516171819
20212223242526
272829  

Son YazIlar

Son Yorumlar

En Çok Okunanlar

Etiket Bulutu

Anket

Mobil İşletim Sistemi olarak hangisini tercih ediyorsunuz?

Sonuçları göster

Loading ... Loading ...

Kimler Çevrimiçi

Şuanda 11 ziyaretçi çevrimiçi
2 ziyaretçi, 9 robot, 0 üye
Yapımcısı Ziyaretçi Haritası

Reklam AlanI