Asp.Net Temelleri–Eğlenceli GridView

Merhaba Arkadaşlar,

Bir süre önce çalıştığım firmada ufak bir web uygulaması ihtiyacı ile karşılaştım. Bir kaç günlük efor isteyen bu basit işte, uzun süredir kullanmadığım eski dostumuz GridView kontrolü ile haşır neşir oldum. Onun bir kaç etkili özelliğini ve işe yarar ip uçlarını tekrardan hatırladım. Hal böyle olunca bir araya getirip basit bir video anlatımında birleştirmek istedim. Ele aldığımız konulara gelince.

  • Hiç veri olmadığında GridView.
  • Alan içeriklerini formatlamak.
  • N sayıda alan kullanan Link vermek.
  • Belirli koşullarda satır bazında makyaj değiştirmek.
  • Null alanlar için hücrede imaj göstermek.
  • Tüm hücre içeriklerini aynı taraftan hizalamak.

Afiyetle izleyin. Eski günlerimizi yaad edelim.

Yorumlar (13) -

  • çok güzel bir video idi . Eski bilgileri hatırlamış olduk sayenizde teşekkürler.
  • Teşekkürler Hocam. Emeğiminize sağlık Smile)
  • Yine keyifli bir konu güzel bir video olmuş Burak hocam. Bilgilerimizi tazeledik teşekkürler.
  • Teşekkürler arkadaşlar. Faydalanabilmenize sevindim. Projemizde uğraştığım konular nedeniyle böyle nostaljik anlatımlara devam edebilirim, belli olmaz ;)
  • Datalist de bayağı iş görüyor ama onun neden sayfalama aracı hazır değil hep merak etmişimdir hocam. Birde o kullandığınız aracın adı nedir? 0 references vs yazan.
      Teşekkürler
  • Selamlar,
    Çok faydalı bir ders olmuş hocam. Form nesnesinin üzerine gelip "format element" yerine CTRL+E kombinasyonu aynı işlemi görür ayrıca codebehin tarafında da çok işe yarar.

  • Güzel bir anlatım olmuş Burak hocam. Saatlerce eğitim seti hazırlayıp bu konulara değinmeyenler o kadar fazla ki. Emeğinize sağlık bende tazelemiş oldum bilgilerimi anlatımınız ile.
  • Teşekkürler Mesut Bey, aslına bakarsanız pratik hayat tecrbülerini çeşitlendirerek anlatmaya çalışıyorum son zamanlarda. Bu görsel ders' de bu şekilde doğdu. Bu tip içeriklerin çevreden gelen destekler ile artmasını dilerim. Hepimiz faydalanıyoruz çünkü.
  • hocam uygulamalr güzel bir sorum var ama gridview de dtails butonu ekleyerek veri tabanından gelen bilgileri göstermek istiyorum butona tıkladığımda başka bir pencere açılacak tıkladığım satırdkaki bilgiler bu pencerede gelecek ve o kayıtlarla ve yeni textbox, dropdownlist gibi kontroller ekleyerek bu bilgileri ayrı bir tabloya kaydedeceğim örnekler aradım bulamadım yardımcı olursanız sevinirim.
  • Merhabalar

    Bunun bir kaç yolu var. Örneğin daha önceki bir senaryoda şu şekilde ilerlemiştim.

    <asp:GridView...>
    <Columns>
       <asp:TemplateField HeaderText="Kaynak">
          <ItemTemplate>
            <asp:LinkButton ID="btnDetay" runat="server" Text='<%#Eval("Parametre1")%>' OnClick="btnDetay_Click"                                                                   CommandArgument='<%# String.Format("{0}|{1}", Eval("Parametre1"), Eval("Parametre2")) %>' />
          </ItemTemplate>
       </asp:TemplateField>                                                        <asp:BoundField...

    LinkButton' ın Click olay metodunda da,

    protected void btnDetay_Click(object sender, EventArgs e)
            {
                LinkButton linkButton = (LinkButton)sender;
                string argument = linkButton.CommandArgument;
                string[] arguments = argument.Split('|');
                string sorguId = arguments[0];
                string source = arguments[1];
                string redirect = "<script>window.open('DetailPage.aspx?parametre1={0}&parametre2={1}','_blank','left=100,top=100,toolbar=no,scroolbars=yes,width=1280,height=500');</script>";
                AjaxControlToolkit.ToolkitScriptManager.RegisterClientScriptBlock(this.Page, typeof(Page), "popupDetailPage", string.Format(redirect, parametre1, parametre2), false);    
            }

    Ama tabi bu sadece bir yolu. Dikkat edilecek olursa AjaxControlToolkit' in Script Manager' ından yararlanarak popup açtıracak javascript kodunu server' da oluşturmuşum. Bu noktada Javascript kodlarının server tarafta sayfaya eklenmesi ile ilişkili bir araştırma AjaxControlToolkit bağımsız nasıl yüklenebileceğini de öğrenebilirsiniz. Nitekim Page.RegisterClientScriptBlock ile de script yüklenmesi sağlanabilir.

    Diğer yandan Popup açma işlemini, istemci tarafında JavaScript kodu kullanarak da halledebiliriz.

    Örneğin;

    window.showModalDialog('Information.aspx', '', 'dialogHeight: 200px; dialogWidth: 400px; center: Yes; resizable: No; status: No; titlebar : No; toolbar: No; close: No;');

    gibi; ama bu metodun parametrik yapısının her tarayıcıda çalıştığını ifade edemeyiz(http://www.w3schools.com/jsref/met_win_open.asp adresine bir bakalım)

    Dahası GridView içerisinde bir HTML elementinde kullanılacaksa bir şekilde parametre taşıması için yine javascript tarafında  ilgili kontrolleri tespit edip aspx adresi sonuna QueryString şeklinde ekleyebilmek de gerekir.

    Yani özetle temel amaç GridView içerisinde seçili olan satırın parametrik değerlerini yakalayıp, popup' ı açacak olan Javascript' te kullanıp bunu sayfaya bir şekilde register etmek.

    Yine de biraz daha araştırma yapın derim. Client Side Library' ler günümüzde oldukça yetenekli. jQuery kontrollerinde bu tip atraksiyonları yapmak biraz daha kolay gibi. Ben bulunduğumuz projenin kıstasları nedeniyle uyguladığımız yolu izah etmek istedim. Umarım bilgi verebilmişimdir.
  • Hocam birşey sorucam aspde gridwiewde bir tablo oluşturdum ve buna select butonu ekledim ben select butonuna bastığım zaman default.aspx sayfasına gidicek ve giderken o satırdaki bilgileri taşıyıcak ve defaultta labellere yazdırıcak session kullandım boş değer döndürdü işe yaramadı çözüm yolu varmıdır acaba?

Yorum ekle

Loading