ASP.NET / ASP.NET 2.0da GridView Kontrolü Kullanımı
Bu makalemizde veriyi düzenli bir şekilde ekranda görüntülemek ve üzerinde işlem yapmak için kullandığımız ASP.NET 2.0 ile gelen yeni sunucu kontrolü Gridviewi inceleyeceğiz.
Türkiyedeki ilk ASP.NET 2.0 seminerini 17 Agustos 2004de gerçekleştirdiğimde bu örnek en beğenilenlerden biri oldu. Bu yüzden ben de hızlıca bir makaleye dökeyim istedim konuyu. Herhalde ASP.NET 2.0 ile en sık kullanacağımız kontrollerden olacak olan Gridviewı gelin yakından inceleyelim.
Veritabanları ile çalışmak ve verileri istemci ekranında göstermek her zaman için bir web yazılım geliştiricinin ihtiyacı olan işlemleri oluşturmuştur. Veriyi düzgün bir şekilde ekranda görüntülenmesi için HTML elementlerinden olan Table, TableRow yani tr ve TableData yani tdyi kullanırdık. ASP.NET ile birlikte DataGrid kontrolü ile tanıştık, artık .NET Framework içerisinde veritabanlarından veya XML dosyalarından, web servislerinden aldığımız veriyi kolayca ekranda gösterebiliyorduk. Gridview kontrolü de yine sunucu taraflı çalışan Datagridden daha gelişmiş bir kontroldür.
Visual Studio .NET 2005 toolboxında yer alan Data bölümü altında bu kontrolü görebiliriz:
Bu kontrolü Visual Studio ekranı Design yani tasarım bölümündeyken sürükleyip bıraktığımızda karşımıza Şekil 2deki gibi bir ekran görüntüsü çıkacaktır:
Artık bize tanıdık gelen "Smart Task" özelliği sayesinde Gridview kontrolünün tüm özelliklerini kolayca değiştirebiliyorum. Hemen yapacağım ilk iş yeni bir veri kaynağı belirmek olacak. Ben kendi bilgisayarımda yüklü olan SQL Servera bağlanacağım. Bunu yapabilmek için Yeni veri kaynağı seçeneğini yani new data sourceu seçiyorum:
.NET uygulamalarında veri ile çalışacaksanız önce bir bağlantı nesnesi yaratmanız gerekmektedir. Bu işi az sonra Visual Studio .NET 2005 kendisi bizim yerimize çözüyor olacak. Bizden sadece bu nesneye vereceğimiz ismi bekliyor. Bu uygulamamızda SqlDataSource1 olarak belirleyelim. Ardından Şekil 4deki ekran ile karşılaşıyor olacağım. Bu ekranda bağlanmak istediğim SQL Serverın bilgilerini veriyorum.
Şekil 4de gördüğünüz gibi kendi bilgisayarım üzerindeki SQL Servera bağlanacağım için . olarak sunucu adresini belirttim. User ID olarak bağlanmak istediğim kullanıcıyı ve şifresini yazıyorum. Ve ardından Northwind adlı standart olarak gelen veritabanını seçiyorum. Bağlantıyı test etmek için test connection butonuna tıklayabilirsiniz.
SQL Bağlantı cümlesini güvenli bir şekilde saklamanın yolu global.asax veya web.config dosyalarından birinde uygulama bazlı bir değişken olarak tutmak olacaktır. Ben web.config adlı XML yapısındaki bu dosya içerisinde tutarak bağlantı cümlesini merkezi biryerde saklamış olacağım, bunu benim adıma kendisinin yapacak olması ise Visual Studio .NET 2005in güzel bir özelliği.
Sıra geldi verileri çekme işlemine. Bir SQL cümlesi yazmam gerekiyor ama bunu da yine ileri butonuna bastığımda karşıma gelen Şekil 6daki konfigürasyon ekranından yapmak oldukça kolay.
Products yani ürünler adlı tablodan ürünün adını ve IDsini ardından bir de fiyatını alıyorum. Dilerseniz SQL Server üzerinde bulunan bir strored procedureu de buradan çağırabilirsiniz. Ayrıca Where ile koşullar koymak ve order by butonu ile sıralamak da mümkün.
Design yani tasarım ekranımızdaki görünüm ise Şekil 7deki gibi olacaktır. Gerekli olan bağlantı yaratıldı ve Gridview kontrolüne otomatik olarak bağlandı. Dikkat ettiyseniz henüz kod yazmadık, peki bu haliyle çalışırmı? Gelin F5 tuşuna basalım ve uygulamayı çalıştıralım:
Visual Studio .NET 2005, kişisel web sunucuyu çalıştırdı ve ardından ara dil dönüşümünü gerçekleştirerek ekrana istemiş olduğumuz bilgileri verdi. Peki ben sayfaki bilgileri alt sayfalara bölmek istesem hatta sıralamak istesem; ne yapmam gerekir? Hemen Smart Taske dönüp bakıyoruz:
İşte burada sadece tıklamam yeterli oluyor. Peki isterseniz arka planda benim için ürettiği koda da bakalım:
<asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1" DataKeyNames="ProductID"
AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True">
<asp:BoundField ReadOnly="True" HeaderText="ProductID" InsertVisible="False" DataField="ProductID"
<asp:BoundField HeaderText="ProductName" DataField="ProductName" SortExpression="ProductName"></asp:BoundField>
<asp:BoundField HeaderText="UnitPrice" DataField="UnitPrice" SortExpression="UnitPrice"></asp:BoundField>
<asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Alphabetical list of products]"
Son olarak uygulamamızı yeniden çalıştıracak olursak Şekil 10daki görüntü ile karşılaşırız:
Gördüğünüz gibi ürünler listesi sayfalara bölündü ve başlıklar bazında sıralanabilir hale geldi.
Sonuç olarak Visual Studio .NET 2005 yazılım geliştiricilerin daha az kod yazarak daha verimli uygulamalar geliştirmesi için yeni kontrollerle bu işlemi kolaylaştırıyor. Bu demek değil ki artık kod yazmayacağız; kod yazacağız ama artık işin çözümüne odaklanacağız diye düşünüyorum. Unutmayın yeni oyun düzeninde ancak durmadan değişime adapte olabilenler ve değişimlere hızlı tepki verebilenler başarıyı elde edenler olacaktır.
Bilgiyi paylaştığımız yeni bir yazımızda, belki de yeni ASP.NET 2.0 seminerlerinde görüşmek üzere...