27 Aralık 2010 Pazartesi

İç içe Repeater Kontrolü ile Kategorileme

Makale Kaynak:  Bilginin Adresi

Öncelikle veritabanını Tasarlayalım..



Ana kategorileri, alt kategorilerden ayıran hücremiz MainKategori adındaki hücre. Buradaki mantık şu şekilde. Eğer MainKategori alanımız 0 ise bu bir ana kategoridir. Alt kategorileride AnaKategorisi hücresinden anlayacağız. AnaKategorisi hücresindeki sayı herhangi bir kategorinin KategoriId si ile aynı ise bu onun alt kategorisidir. Verileri girilmiş bir tablo örneğine bir göz atalım.




Verileri girilmiş tabloya bakarsak MainKategori hücresindeki 0 olanlar Ana kategoriyi temsil ediyor. Yani Ehliyet Sınavları, OKS Sınavları, ÖSS Sınavları ve Microsoft Sertifika birer Ana kategori.
Trafik, İlk Yardım, Motor kategorileri Ehliyet Sınavları kategorisinin Alt kategorileridir.
Matematik, Coğrafya, Fizik kategorileri OKS Sınavları nın Alt kategorileridir.

Tablomuzun mantığını anladıktan sonra sayfamıza bir repeater kontrolü ekleyelim ve ID sini rpAnaKategori olarak değiştirelim. Biliyorsunuzki Repeater kontrolünün tasarımına Visual Studio Design kısmından müdahale edemiyoruz. Code kısmına girip Tasarımızı html kodları yardımıyla yapmamız gerekecek. Bunun için Repeater kontrolünün içerisine ItemTemplate ekliyoruz ve içerisine kategorilerimizi çektiriyoruz.

    <asp:Repeater ID="rpAnaKategori" runat="server">
        <ItemTemplate>
            <%#Eval("KategoriAdi") %> //Kategori ismini çektirdik.
<br/>
        </ItemTemplate>
    </asp:Repeater>

Page Load Eventine gelip Repeater içerisine Ana Kategorilerimizi Çektirelim.

        SqlConnection baglanti = new SqlConnection(@"Data Source=localhost;Initial Catalog=TestPort;Integrated Security=True;");
  //MainKategori=0 ile sadece ana kategorileri çektirmiş olduk
        SqlCommand cmdAnaKat = new SqlCommand("Select * from Kategoriler Where MainKategori=0", baglanti);
        rpAnaKategori.DataSource = cmdAnaKat.ExecuteReader();
        rpAnaKategori.DataBind();
        cmdAnaKat.Dispose();
        baglanti.Close();

Bu haliyle sadece Ana kategorileri Alt Alta sıralamış olduk. Şimdi Repeaterımın içerisine bir repeater daha koyup adını rpAltKategori yapıp ve Ana kategoriler her dönüşünde Alt kategorilerini kontrol edip, alt kategorisi varsa listelemesini yapalım. Repeaterımızı şu şekilde düzenliyoruz.

<asp:Repeater ID="rpAnaKategori" runat="server">
<ItemTemplate>
  <%#Eval("KategoriAdi") %>
  <br />
  <asp:Repeater ID="rpAltKategori" runat="server">
      <ItemTemplate>
        <%#Eval("KategoriAdi") %>
          <br />
      </ItemTemplate>
  </asp:Repeater>
</ItemTemplate>
</asp:Repeater>


Gördüğünüz gibi rpAnaKategori Repeaterının içerisine rpAltKategori adında bir Repeatar daha oluşturduk ve içerisine ItemTemplate ekleyip KategoriAdi ni çektirdik.  Şimdi yapmamız gereken Ana Kategoriler her döndüğünde Alt kategorileri altına listelemek.
Ana Kategoriler her döndüğünde Alt kategorinin kontrol edilmesi için rpAnaKategori ye ItemDataBound eventi oluşturmamız gerekiyor. rpAnaKategori kontrolünün ilk satırı aşağıdaki gibi olacaktır.

<asp:Repeater ID="rpAnaKategori" OnItemDataBound="rpAnaKategori_ItemDataBound" runat="server">

Şimdi bu Eventi sayfamızın .cs kısmında yazalım.

    protected void rpAnaKategori_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Repeater rp = (Repeater)e.Item.FindControl("rpAltKategori"); //İç tarafdaki rpAltKategori kontrolüne erişiyoruz ve rp değişkenine atıyoruz
        SqlConnection baglanti = new SqlConnection(@"Data Source=localhost;Initial Catalog=TestPort;Integrated Security=True;");

        //Ana Kategoriye bağlı alt kategorileri seçiyoruz
        SqlCommand cmdAltKat = new SqlCommand("Select * from Kategoriler where AnaKategorisi=" + Convert.ToInt32(DataBinder.Eval(e.Item.DataItem, "KategoriId").ToString()), baglanti);
        rp.DataSource = cmdAltKat.ExecuteReader();
        rp.DataBind();
        cmdAltKat.Dispose();
        baglanti.Close();
    }

Böylece Ana ve Alt kategorileri Alt Alta çekmiş Olduk. İsterseniz birde buna ufak bir javascript kodu ekleyip Alt kategorileri gizleyelim. İlk olarak Ana Kategori isimleri görünsün, Ana kategorilere tıklandığında alt kategorilerini gösterelim. Ana kategorileri ve Alt kategorileri birbirinden ayırmak için 2 farklı resim kullanalım.

 Ana Kategori Resmi (Resim Adı: menukapali.png)
 Alt Kategori Resmi (Resim Adı: menuacik.png)


Javascript kodunuzu Head bölümüne ekleyin

<SCRIPT language="javascript">
  function show(id) {
      obj = document.getElementById(id);
      if (obj.style.display == "block") {
          obj.style.display = "none"
      }
      else {
          obj.style.display = "block"
      }
  }
</SCRIPT>

Şimdi Repeaterlarımızda biraz düzenleme yapacağız. Ana ve alt kategorin yanlarına resimlerimizi koyacağız. Alt kategorileri listeleyen rpAltKategori kontrolümüzü gizlenip açılması için bir div tagı içine alacağız. Bu dive erişmemiz için Idsi Ana Kategorinin Id si olacak. Ana kategori ismine link verip javascriptimizdeki show fonksiyonuna KategoriId sini gönderiyoruz.

Bu fonksiyonun yaptığı iş kendisine gelen değeri sayfada bulup display özelliği none ise block yapmak, block ise none yapmak J

<asp:Repeater ID="rpAnaKategori" OnItemDataBound="rpAnaKategori_ItemDataBound" runat="server">
  <ItemTemplate>
      <img align="absmiddle" src="imajlar/menukapali.png" />
<a href="javascript:show(<%#Eval("KategoriId")%>)">
<%#Eval("KategoriAdi") %>
</a>
      <br>
      <div id="<%#Eval("KategoriId")%>" style="DISPLAY:none">
      <asp:Repeater ID="rpAltKategori" runat="server">
          <ItemTemplate>
              <img align="absmiddle" src="imajlar/menuacik.png" />
  <%#Eval("KategoriAdi") %>
              <br />
          </ItemTemplate>
      </asp:Repeater>
      </div>
  </ItemTemplate>
</asp:Repeater>


Evet arkadaşlar şimdi uygulamamızı çalıştırıp kategorilemizi ve repeaterlarımızın şeklini görebiliriz.






Göründüğü gibi Turuncu olanlar Ana Kategori, Mavi olanlar alt kategoridir. Ben daha sonradan Ana ve Alt kategori yazılarına style tanımladım. İç içe 2 tanemi repeater kullanılıyor Tabiki Hayır. İstediğiniz kadar repeatarı iç içe ItemDataBound ları unutmadan kullanabilirsiniz 

 

20 Aralık 2010 Pazartesi

VTC Microsoft Visual Studio C#.Net Görsel Eğitim Seti


418 MB Rar'dan Çikinca 573 MB yine iso dosyasidir.. Poweriso Benzeri programla açicaksiniz..
Adresleri kopyalayın tarayıcıya yapıştırın

http://hotfile.com/dl/90768618/3a263e3/VTC.Microsoft.Visual.CSharp.dotNET-Tutorials.part1.rar.html

http://hotfile.com/dl/90775389/5f6b9b2/VTC.Microsoft.Visual.CSharp.dotNET-Tutorials.part2.rar.html

http://hotfile.com/dl/90779878/78a022b/VTC.Microsoft.Visual.CSharp.dotNET-Tutorials.part3.rar.html

http://hotfile.com/dl/90785581/a9c9ab0/VTC.Microsoft.Visual.CSharp.dotNET-Tutorials.part4.rar.html

19 Aralık 2010 Pazar

Yen başlayanlara C#'ta Açıklamalı Hesap Makinesi

Aslında tam giriş sayılmaz biraz Orta dereceli ama faydalı olucaktır.Ben de yeniyim Benim yaptığım bir programdır.. Baya bi fonksiyon var Programda Alıntı yapacak olursa ismimi belirtisi sevinirim.. Hatalarım varsa affola. Eşittir butonu komik oldu Sayılar Runtime çalıştığından( Form yüklenirken geliyor ekrana ) dolayı böyle yapmak zorunda kaldm siz kendinize göre uyarlarsınız.
Ayrıca dosyanın çinde bilge adam için yaptığım intrduction ödevleri ve bir tane cSharp pdf döküman  var...İyi kodlar :)
http://hotfile.com/dl/90616181/82a67a2/HesapMakinesi.rar.html

Asp.Net Data Binding- Veri Bağlama

16 Aralık 2010 Perşembe

CSS Style Etiketleri İçinde Yazmak

CSS Nedir Ne İçin Kullanılır

CSS ile HTML Dosyasını Bağlamak

HTML içinde CSS Kullanmak

Java Script if Yapısı

Java Script Document Write Kullanımı

Java Script For Döngüsü

Java Script Değişkenler

Java Script Prompt Kullanımı

Java Script Fonksiyon Oluşturma

Java Script Fonksiyon Çağırma

Java Script Alert Kullanımı

Asp.Net ile MasterPage Yapımı

Asp.Net Üyelik Sistemi

Asp.Net Dosya Upload Sistemi

Sql Server Veritabanı Oluşturmak

Sql Server Where Kullanımı



Sitede bulunan videolar http://www.webteders.com'dan/ alınmıştır..

Sql Tabloya Kayıt Eklemek İnsert Into

15 Aralık 2010 Çarşamba

Asp.Net Sql Veri Tabanı Bağlantısı Kurmak


Bu video WebteDers'in anlatımdır..

C# Örnekler, Kodlar Hepsi Bir Arada

Resmi büyütmek için yeni sekmede açın ya da tıklayın..


C# Türkçe Ders Video part 2






C# Türkçe Ders Video part 1




Orçun Öztürk'ün C# Videoları..


Sql Server 2008 Görsel Ders


Setin Dili ingilizcedir ama. Görsel olduğundan bir sorun teşkil etmicektir..
Yukarda Setten bir önizlemele bulunmaktadır..