Barner
  
YAZAR :Emin Gökçe
ALANI :Php, Mysql
Asp.net Sınırsız Kategori

  Merhaba arkadaşlar öncelikle bu makaleyi yazma nedenim sitemde olmamasına rağmen google amca’nın bana bu konuda ziyaretçi göndermesi madem misafirimiz gelmiş eli boş göndermek pcdershanesi.com’a yakışmaz.Bu nedenle böyle bir makale yazıyorum

Öncelikle yapmamız gereken şey bir veri tabanı oluşturmak.

Veri Tabanı adımız     : “deneme”

Tablo ismimiz             : “smenu”

Alanlarımızda             :   idàint türünde Autoincrement() ve PrimaryKey olarak tanımlanmalı

                                       kat_id àint türünde

                                       kat_ismi  à varchar türünde

 

Öncelikle veri tabanı bilgisi olmayan arkadaşlar nasıl veri tabanı oluşturacaklarını formumuzdaki makale ve videolara bakarak öğrenebilirler. Bu adımı tamamladıktan sonra menümüzü yapmaya devam edelim.

 

Projemizdeki source (kod) kısmına gelip aşağıdaki kodu yazalım.

 <ul id="Menu1" runat="server"></ul> 

Bu kodu menu’yü istediğimiz yere yerleştiriyoruz.

Şimdi geliyoruz cs kısmına;

Öncelikle uzaylarımızı eklememiz gerekiyor bunların bir çoğu zaten projemizle geliyor olmayanları eklememiz şart.


using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

 Şimdide gelelim kodlarımıza;

 public partial class _Default : System.Web.UI.Page

    {
        DataSet ds = new DataSet();
        SqlConnection con = new SqlConnection(@"Data Source=EMINPCSQLEXPRESS;Initial Catalog=deneme;Integrated Security=True");
        protected void Page_Load(object sender, EventArgs e)
        {
            doldur();
        }
        private void doldur()
        {
            SqlDataAdapter da = new SqlDataAdapter("select * from smenu", con);
            da.Fill(ds);
            DataRow[] anaKategoriler = ds.Tables[0].Select("kat_id = 0");
            foreach (DataRow anaKategori in anaKategoriler)
            {
                HtmlGenericControl li = new HtmlGenericControl("li");
                li.Controls.Add(new LiteralControl("<a href=#>" + anaKategori["kat_ismi"].ToString() + "</a>"));
                Menu1.Controls.Add(li);
                altmenu(Convert.ToInt32(anaKategori["id"]));
            }
        }
        private void altmenu(int kategoriId)
        {
            DataRow[] kategoriler = ds.Tables[0].Select("kat_id=" + kategoriId);
            if (kategoriler.Length == 0)
            {
            }
            else
            {
                Menu1.Controls.Add(new LiteralControl("<ul>"));
                foreach (DataRow kategori in kategoriler)
                {
                    HtmlGenericControl li1 = newHtmlGenericControl("li");
                    li1.Controls.Add(new LiteralControl("<a href=#>" + kategori["kat_ismi"].ToString() + "</a>"));
                    Menu1.Controls.Add(li1);
                    altmenu(Convert.ToInt32(kategori["id"]));
                }
                Menu1.Controls.Add(new LiteralControl("</ul>"));
            }
        }
    }

 

Bu kodlarda düzenlemiz gereken yer veri tabanı bağlantımızı yaptığımız connectionstringimiz.

Projemizin kaynak kodlarını burdan indirebilirsiniz.