ASP.NET Linq to SQL Sınırsız Alt Kategori Ekleme
2466 görüntüleme

Merhabalar,

Bu yazımızda ASP.NET Linq to SQL kullanarak sınırzın kategori alt kategori eklemeden bahsedeceğim. Localde DENEME adında bir veri tabanı oluşturdum. Kategoriler adında bir tablo oluşturdum.

ID, Ad, UstID ve Durum alanları oluşturdum. Visual Studioda yeni web sitesiı açıyorum, Default.aspx ve vt.dbml adında bir LinqtoSql Clas ekliyorum. Linq to sql clasımıza tabloyu ekledikten sonra. Default.aspx sayfamıza bir adet literal ekleyip adını ltlKategori olarak değiştiriyorum. F7 ile kod kısmına geçip aşağıdaki kodlarrı yazıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    vtDataContext vt = new vtDataContext();//Linq to Sql clasımızı tanıtıyoruz.
    string html = "<ul>";//literale yazdıracağımız stringimizi tanımlıyoruz.
    protected void Page_Load(object sender, EventArgs e)
    {
        //UstID si 0 olanları yani ana kategorileri çekiyoruz
        var Kategori = from i in vt.Kategorilers
                       where i.UstID == 0 & i.Durum == 1
                       select i;


        foreach (Kategoriler anamenu in Kategori)
        {
            html += "<li><a href='#'>" + anamenu.Ad + "</a>";//Ana kategorileri html değişkenimize atıyoruz
            Altkategori(anamenu.ID);//UstID si çektiğimiz anakategori ile aynı olan kategorileri çekmek için AltKategori isminde bir metod tanımlayıp </li> tagından öncesinde çalıştırıyoruz.
            html += "</li>";
        }
        
        ltlKategori.Text = html;//html değişkenini literalimize atıyoruz.

        html += "</ul>";

    }

    private void Altkategori(int id)
    {
        var say = (from i in vt.Kategorilers
                   where i.Durum == 1 & i.UstID == id
                   select i).Count();//UstID si gelen kategori ile eşleşen kayıtların sayısını alıyoruz.

        if (say > 0)//Eğer sayı 0 dan fazla ise döngümüzü yazıyoruz.
        {
            var altKat = from i in vt.Kategorilers
                         where i.Durum == 1 & i.UstID == id
                         select i;
            html += "<ul id='menu'>";
            foreach (Kategoriler altkategori in altKat)
            {
                
                html += "<li><a href='#'>" + altkategori.Ad + "</a>";
                Altkategori(altkategori.ID);//Egeğ alt kategorinin de alt kategorisi var ise Altkategori metoduna gönderiyoruz
                html += "</li>";
            }
            html += "</ul>";

        }
        
    }
}

Sayfayı çalıştırdığımda ekran görüntüsü aşağıdaki gibi çıkıyor.

CSS ile görünümü güzel hale getirebilirsiniz.

Başka bir yazıda görüşmek üzere hoşçakalın.

Bildiklerimizi paylaşıyoruz, bilmediklerimizi öğreniyoruz.
biz bunları yapıyoruz ya siz...
© 2016 Bildiklerimiz.Net Tüm hakları saklıdır.