ASP.NET 2.0 – DetailsView ve GridView – 1, 2, 3

DetailsView; veritabanı, XML dosyası ve benzeri şekilde içerisinde bilgi saklayabileceğimiz herhangi bir kaynağın içerisinde tutulan bilgilerin; kayıt bazında gösterilmesi, düzenlenebilmesi, silinebilmesi ve gerektiğinde ilgili veritabanlarına yeni kayıtların eklenebilmesi sırasında kullanılabilecek bir kontroldür.Yazılım geliştiricilere formların tasarlanması sürecinde sağladığı kolaylıkların yanısıra, çift yönlü binding yapabilmesi de (bu konu örnek dahilinde anlatılacaktır) en büyük avantajları arasındadır.

“DetailsViewMode” tipindeki özelliği sayesinde görüntüleme, ekleme ya da silme modlarından hangisinde olduğu değeri alınabilir ve ya “ChangeMode” isimli methodu yardımı ile kolayca bu durumlar arasında geçiş yapabilir.

Makalenin kapsadığı konular:

  1. DetailsView kontrolü
  2. DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek

Makale bölümleri:

  1. Bölüm 1
  2. Bölüm 2
  3. Bölüm 3

11 Responses

  1. serseri says:

    gridview ile verileri ızgaralara döşemek çok kolay ama binlerce verinin içinden istediğinizi bulmak çok zor. sayfaya bir textbox ve button koyarak aradığımız veriyi gridview’de nasıl gösterebiliriz. ben çok denedim ama beceremedim. bu konuda yardımcı olacağınıza inanıyorum

  2. Coskun SUNALI says:

    Selam,

    Bunun icin DataTable’in “DefaultView” özelliğini kullanarak DataView tipindeki nesneye erişebilir ve sonrasında da bu nesnenin “RowFilter” özelliğini kullanarak da TextBox’taki değere göre filtreleme yapabilirsiniz. Sanıyorum bu işinizi de görür. RowFilter özelliğinin kullanımı hakkında MSDN’de örnekler de mevcut.

    Teşekkürler.

  3. Master Detail ile ilgili 3 makaleden çok şey öğrendim ama GridView ile DetailsView arasındaki bağın nasıl kurulduğunu göremedim. Onu
    http://msconline.maconstate.edu/Tutorials/ASPNET2/ASPNET07/aspnet07-09.aspx
    adresinde buldum.
    Bir sorum olacak. Bu bileşenleri AJAX ile entegre edebiliyor muyuz yoksa AJAX ile entegre edilmiş bileşen mı kullanmak zorundayız refresh i engellemek için?

  4. Coskun SUNALI says:

    Yasir Bey,

    Bu konuda hicbir denemem olmadi. Acaba siz denediniz ve bir sonuc mu alamadiniz, yoksa siz de mi denemediniz?

    Ben ilk fırsatta deneyip, sonucu yine burada yazacağım.

    İlginiz için teşekkürler.

  5. Biraz geç bir cevap olacak ama gridview i ajax la kullandığım bir örneğim vardi paylaşmak isterim. Aynı mantığı kullanarak sanırım istediğiniz seyi elde edebilirsiniz.
    GridView gd = new GridView();
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    System.IO.StringWriter sw = new System.IO.StringWriter(sb);
    System.Web.UI.HtmlTextWriter htw = new HtmlTextWriter(sw);
    gd.RenderControl(htw);
    return sb.ToString();

    Bu kodu geri dönüş değeri string olan bir ajax method da kullanıp burdan donen Html kodunu da div span gidi objelerin innerHTML özelline atarsaniz olacaktir. Sayfalamada probleminiz olabilir onu kendiniz elle direk yazarak yapabilirsiniz. Arzu ederseniz size ajax method u tamamen yollayabilirim.

    İyi calışmalar.

  6. Coskun SUNALI says:

    Selam,

    Ek olarak bir de UpdatePanel controlünü kullarak da, hertürlü ASP.NET kontrolünü AJAX uyumlu olarak kullanabilirsiniz.

    Bu konuda da yardıma ihtiyacınız olursa çekinmeden söyleyin lütfen.

    Murat Bey, değerli açıklamanız için teşekkür ederim.

  7. Emil KHAMITOV says:

    GridView kontrolunu bir veritabanı ile bağladım, ama kullanıcı bu GridView’den bir record silmek istediği zaman bu record veritabanındaki başka bir tablodan referans gösteriliyorsa, kullanıcıya pis bir hata ekranı geliyor. Yani record silinemez olduğu zaman ve kullanıcı silmek istediği zaman kod olarak bunu nasıl handle edebiliriz?
    teşekkürler

  8. Coskun SUNALI says:

    Sayın Khamitov,

    GridView’ın RowDeleting event’ini kullanarak, GridView’ın “Delete” state’ine geçmesinden bir önceki adımda istediğiniz işlemleri yapabilirsiniz. Gerekli kontrollerden sonra (kayıt silinebilir mi, yetki var mı, build-in kayıt mı, vs.) GridViewDeleteEventArgs tipindeki “e” objesinin Cancel property’sini “true” yaparsanız, GridView “Delete” state’ine geçmez.İyi çalışmalar.

  9. Mehmet Aydoğan says:

    serseri arkadaşa;

    buton click e şu kodu yaz

    sub butonclick()
    Dim strConn As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.MapPath(“haber2005.mdb”) & “;”
    Dim MyConn As New Data.OleDb.OleDbConnection(strConn)
    Dim ds As Data.DataSet = New Data.DataSet()
    Dim MySQL As String = “Select * from kitapkayit Where dn Like ‘” & TextBox1.Text & “‘ ”
    Dim Cmd As New Data.OleDb.OleDbDataAdapter(MySQL, MyConn)
    Cmd.Fill(ds, “kitapkayit”)
    GridView1.DataSource = ds.Tables(“kitapkayit”).DefaultView
    GridView1.DataBind()
    If (ds.Tables(“kitapkayit”).DefaultView.Count > 0) Then
    Label1.Text = ds.Tables(“kitapkayit”).DefaultView.Count & “Kayıt Bulundu”
    Else
    Label1.Text = “Kayıt Bulunamadı”
    End If
    end sub

    sonrada gridviewi Coşkun beyin dediği gibi bağla datasource ve daha sonra html kod kısmından

  10. Ali DEMİR says:

    Detailsview veya gridview farketmez
    sayfada sorgulamak istediğiniz bilgi session oluşturarak
    arama text butonuna baglarsınız ve
    grid-dataview WHERE bölümünde Control = session diyerek eklediğiniz sessionu sorgu sonucu size filtrelenmiş bilgi DATA veya GRİD view ile gelir!

    Kodlarını isterseniz veya çalışan biörneğinide yollayabilirim….

  11. Nemo says:

    Merhaba,

    ASP.Net 3.5 ve vb.net kullanarak oluşturduğum bir uygulamam var. Gridview’de drag&drop ve filtreleme özelliklerini kullanmak istiyorum nasıl yapabilirim ? Bir örneği olan aradaş varsa gönderebilirse çok sevinirim.

    Teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.