Kurumsal Otomasyon Çözümlerinde Zirve

GridView’da Kayitlar Arasina Ekstra Kayıt Eklemek

GridView Asp.Net in bize sundugu en güzel, en kullanisli kontrollerden biridir. GridView Kontrolünü hemen hemen bütün projelerimizde kullaniriz. Yeter ki bir yerden veri gelsin. GridView hemen aklimiza gelen kontrollerden biri olur.
GridView genel olarak veri kaynaklarindan çekilen verileri gösterdigi için verilerin gösterilisi hep aynidir. Öyle durumlar olur ki siz aralara isteginize uygun satirlar eklemek istersiniz. Örnegin kayitlar listelenirken aralara reklam koymak isteyebilirsiniz.
Bu yazimda GridView kontrolü ile çalisirken kayit aralarina ekstra satirlar eklemeyi ögrenelim. Proje sonunda asagidaki gibi bir sonuç elde edecegiz. GridView’e kitap kategorileri için baslik ekledik.
gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-1

gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-1

1.Adim: Bir adet ASP.NET projesi açiniz.
2.Adim: Sayfaniza bir adet GridView, bir adet AccessDataSource kontrolü ekleyiniz. (Ben verileri Access veritabanindan çekecegim için AccessDataSource kullandim, siz baska veri kaynaklari ile de çalisabilirsiniz.) Asagidaki görüntüyü elde etmeniz gerekiyor.
gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-2

gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-2

3.Adim:  AccessDataSource1 kontrolünü veri kaynaginizda bulunan verilerle doldurunuz. Ben kitaplar tablomdaki kitap bilgileri ile doldurdum.  Tabii kategoriye göre siralamayi unutmayiniz.
ID=”AccessDataSource1″ runat=”server” DataFile=”~/db.mdb”
            SelectCommand=”SELECT [ID], [ad], [fiyat], [kat] FROM [kitaplar]” order by [kat]>
        asp:AccessDataSource>
4.Adim: GridView’in Smart Tag ini kullanarak DataSource özelligine AccessDataSource1 deyiniz. Artik GridView veriler ile doldu. Sonuç asagidaki gibi…
gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-3

gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-3

Simdi her kitap kategori grubunun üstüne dinamik satirlar ekleyelim. Bunun için GridView’in DataRowBoundeventini kullaniyoruz. GridView’in DataRowBound eventine asagidaki kodu ekliyoruz.
GridView’e eklenen her satirda DataRowBound eventi çalisir.
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridViewRow MevcutSatir = e.Row;
        if (MevcutSatir.RowType == DataControlRowType.DataRow)
        {
            string kategori = ((DataRowView)MevcutSatir.DataItem)[“kat”].ToString();
            if (eskiKategori!=kategori)
            {
                eskiKategori = kategori;
                GridViewRow satir = new GridViewRow(0,0, DataControlRowType.Header,DataControlRowState.Normal);
                TableCell hucre = new TableCell();
                hucre.ColumnSpan = GridView2.Columns.Count;
                hucre.HorizontalAlign = HorizontalAlign.Left;
                hucre.Text = kategori;
                hucre.BackColor = System.Drawing.Color.Red;
                hucre.HorizontalAlign = HorizontalAlign.Center;
                satir.Cells.Add(hucre);
                GridView2.Controls[0].Controls.AddAt(GridView2.Controls[0].Controls.Count – 1, satir);
            }
     }
Burada;
GridViewRow MevcutSatir = e.Row; ile normal sartlarda müdahale etmeden eklenecek olan satir okunur.
if (MevcutSatir.RowType == DataControlRowType.DataRow) ile eklenen satir veri satiri ise çalisir.
string kategori = ((DataRowView)MevcutSatir.DataItem)[“kat”].ToString(); ile MevcutSatir bilgilerine okunabilmesi için DataRowView boxing i yapilarak kategori degiskenine aktarildi.
TableCell hucre = new TableCell();
hucre.ColumnSpan = GridView2.Columns.Count;
hucre.HorizontalAlign = HorizontalAlign.Left;
hucre.Text = kategori;
hucre.BackColor = System.Drawing.Color.Red;
hucre.HorizontalAlign = HorizontalAlign.Center;
satir.Cells.Add(hucre);

ile olusturulacak olan hücre özellikleri belirlendi.

GridView2.Controls[0].Controls.AddAt(GridView2.Controls[0].Controls.Count – 1, satir);ile olusturulan satir GridView’e eklendi…
Sonuç asagida…
gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-4

gridviewda-kayitlar-arasina-ekstra-kayit-eklemek-4

Diger yazilarimda görüsmek dilegiyle.

Yorum Yapılmamış

Bir cevap yazın