Sem GÖKSU - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Çalışmalarım | Kitap Önerileri | Fotoğraflarım | RSS RSS | İletişim
İçerik Kategorileri
Makale Kategorileri
Etiket Bulutu
Arama
Tema
Kaynaklar
Takip Ettiklerim

ASP.NET 2.0 ile Gelen DetailsView ve GridView Nesneleri


Ilk olarak gridvView nesnesinden bahsedelim.  Gridview nesnesi bir veritabanindaki ilgili tablo içerisindeki kayitlari göstermemize yarar. Biz projemizde SQL Server 2000 içerisindeki Northwind veritabanini kullanacagiz. Yeni bir Asp.Net Projesi Açtiktan sonra;

 Ilk olarak formumuz üzerine GridView nesnesini yerlestirelim.

Gridinizi ekledikten sonra eger gridimize biraz renk vermek istersek grid üzerinde sag tiklayarak Auto Format ile  hazir grid stillerini kullanabiliriz.

Gridimize güzel bir stil belirledikten sonra artik verileri çekebiliriz.

Ilk olarak veritabani baglantisi için gerekli nesneleri tanimlariz.  Burada sqlDataAdapter, dataSet, ve sqlDataConnection nesnelerini kullanacagiz. Artik tanimlama islemlerine geçebiliriz;

 Imports System

Imports System.Data

Imports System.Data.SqlClient

 Partial Class _Default

Inherits System.Web.UI.Page

    Private Cnn As SqlConnection

    Private Da As SqlDataAdapter

    Private Ds As DataSet

End Class

Not: Nesnelerimizi ayni sayfa içerisinde tanimladigimiz için private olarak tanimladik. Eger bir class içerisinde tanimlamak istersek Public olarak tanimlamamiz gerekir.

Nesnelerimizi tanimladiktan sonra veritabani baglantimizi saglayacak baglanti adinda bir Sub yazalim. Bu Sub veritabanina baglanmamizi saglayacaktir.

Partial Class _Default

    Inherits System.Web.UI.Page

    Private Cnn As SqlConnection

    Private Da As SqlDataAdapter

    Private Ds As DataSet

    Private Sub SetCnn()

        Cnn = New SqlConnection("Data source=localhost; database=northwind; uid=sa; pwd=")

    End Sub

End Class

Evet veritabani baglantimiz artik hazir. Simdi geriye verileri databaseden gride çekmek kaliyor. Gridimizde verileri görüntülemek için geriye DataTable döndüren bir function yazabiliriz. Bu Function Disaridan SQLString adinda bir parametre ile SQL ifadesini alacak. Bu bize ileride yeni sorgular yapmamiza yarayabilir.

Imports System

Imports System.Data

Imports System.Data.SqlClient

Partial Class _Default

    Inherits System.Web.UI.Page

    Private Cnn As SqlConnection

    Private Da As SqlDataAdapter

    Private Ds As DataSet

    Private Sub SetCnn()

        Cnn = New SqlConnection("Data source=localhost; database=northwind; uid=sa; pwd=")

    End Sub

    Private Function SelectDataTable(ByVal SQLString As String)

        SetCnn()

        If Not Cnn Is Nothing Then

            If Cnn.State = ConnectionState.Closed Then Cnn.Open()

            Da = New SqlDataAdapter(SQLString, Cnn)

            Ds = New DataSet()

            Da.Fill(Ds, "table")

            Return Ds.Tables(0)

        Else

            Return Nothing

        End If

    End Function

Functionumuzu yazdiktan sonra artik verilerimiz görüntülenmeye hazir bir sekilde bizi bekliyor. Istersek Form yüklenirken verilerimizi görüntüleyelim.

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        GridView1.DataSource = SelectDataTable("SELECT * FROM Products")

        GridView1.DataBind()

    End Sub

Projemizi çalistirdiktan Sonra verilerimiz asagidaki gibi görüntülenir.

   

Projemizin bu kismini basari ile tamaladiktan sonra Projemize biraz daha hareket katalim ve projemize bir adet DetailsView Nesnesi ekleyelim.

Nesnemizi ekledikten sonra Grid üzerinde sag tiklayarak Show Smart Tag i seçerek formumuza CommondBoundlardan "Select" i ekleriz. Böylese seç butonuna tikladigimizda aktif kayit seçilecek ve seçtigimiz kayda ait detay bilgiler detailsView nesnesinde görüntülenecek.

Bunun için form yüklenirken (Form_load) Detailsview içerisinde ilk kaydi görüntüleyebiliriz. Daha Sonra grid üzerinden seçecegimiz kayit detailsView üzerinde görüntülenir.

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        GridView1.DataSource = SelectDataTable("SELECT * FROM Products")

        GridView1.DataBind()

        DetailsView1.DataSource = SelectDataTable(" SELECT top 1 * FROM Products")

        DetailsView1.DataBind()

    End Sub

Evet simdi projemizi çalistirdiktan sonra grid üzerinde tüm kayitlar görüntülenir fakat, Grid üzerindeki seç butonuna tikladigimizda seçili kaydin detayinin gelmesi için de kisa bir kod yazmamiz gerekir.

Bunun için GridView in GridView1_SelectedIndexChanged eventi içerisine asagidaki kodu yazmamiz gerekir.

   Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged

        DetailsView1.DataSource = SelectDataTable("SELECT  * FROM Products WHERE ProductID=" + GridView1.SelectedRow.Cells(0).Text)

        DetailsView1.DataBind()

    End Sub

Bu Arada Sayfamizi Html Kisminda küçük bir degisiklik yapacagiz. Bunun Nedeni Hem Gereksiz alanlarin gösterilmesini engellemek, hemde Sayfa dizayninin daha göresel olmasini saglamaktir.

   <asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan"

            BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" Style="z-index: 100;

            left: 8px; position: absolute; top: 368px" AutoGenerateColumns="False" Width="344px">

            <FooterStyle BackColor="Tan" />

            <Columns>

                <asp:BoundField DataField="ProductID" HeaderText="Ürün No:" />

                <asp:BoundField DataField="ProductName" HeaderText="Ürün Adi:" />

                <asp:CommandField />

                <asp:CommandField SelectText="Seç" ShowSelectButton="True" />

            </Columns>

            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />

            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />

            <HeaderStyle BackColor="Tan" Font-Bold="True" />

            <AlternatingRowStyle BackColor="PaleGoldenrod" />

        </asp:GridView>

Evet artik projemizi tamamlamis olduk. Projemizi çalistirdigimizda sectigimiz ürüne ait detayli bilgi detailsView nesnesinde  görüntülenecektir.

Bir sonraki makalemizde görüsmek üzere...

ASP.NET ASP.NET | 26.11.2006 00:00:00

3 YORUM


YorumlarYorum Yaz
Ana Sayfa | Hakkımda | Çalışmalarım | Kitap Önerileri | Fotoğraflarım | RSS | İletişim
Sem Göksu 2004-2009 © Tüm Hakları Saklıdır.