27 Aralık 2010 Pazartesi
İç içe Repeater Kontrolü ile Kategorileme
Ö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
18 Aralık 2010 Cumartesi
C# Asp.Net 2010 PDF Döküman
PDF | 1616 Sayfa | 30 MB